打开终端输入下面的命令

hdiutil create -srcfolder node_modules node_modules.dmg

其中 node_modules 是文件夹 node_modules.dmg 是打包出来的 dmg 文件。

想要顺带加密的使用下面的命令

echo -n 'password'|hdiutil create -stdinpass -encryption -srcfolder node_modules node.dmg

其中 password 是密码

参数说明

-i

输入文件,可以多个

-vf

滤镜,可以用 -vf “ass=[ass字幕文件]” 来加载

使用FFmpeg给视频增加黑边需要用到 pad 这个滤镜,具体用法如下:

-vf pad=1280:720:0:93:black

按照从左到右的顺序依次为“宽”、“高”、“X坐标”和“Y坐标”,宽和高指的是输入视频尺寸(包含加黑边的尺寸),XY指的是视频所在位置。

比如一个输入视频尺寸是1280x534的源,想要加上黑边变成1280x720,那么用上边的语法可以实现,93是这样得来的,(720-534)/2。

如果视频原始1920x800的话,完整的语法应该是:

-vf ‘scale=1280:534,pad=1280:720:0:93:black’

先将视频缩小到1280x534,然后在加入黑边变成1280x720,将1280x534的视频放置在x=0,y=93的地方,FFmpeg会自动在上下增加93像素的黑边。

注:black可以不写,默认是黑色。

-vf ‘crop=1920:1080:0:0’

这个是用来裁剪视频大小的,比如录像1080i出来成1088像素,底下有8个黑的像素就可以用这命令去掉。

Read More

今天在使用svg-sprite-loader生成svg symbol的时候发现同事给的svg文件有点问题,生成出来svg文件里面有重复的样式名,导致各个图标的颜色不正常。

1
2
3
4
5
6
7
8
9
10
11
<style type="text/css">
<![CDATA[
.fil1 {fill:#A0D9F6;fill-rule:nonzero}
.fil2 {fill:#FEFEFE;fill-rule:nonzero}
.fil0 {fill:#0A80DF;fill-rule:nonzero}
]]>
</style>
</defs>
<g id="图层_x0020_1">
<metadata id="CorelCorpID_0Corel-Layer"/>
<path class="fil0" d="M2500 0c-1381,0 -2500,1119 -2500,2500 0,1381 1119,2500 2500,2500 1381,0 2500,-1119 2500,-2500 0,-1381 -1119,-2500 -2500,-2500z"/>

Read More

我在家里使用一块 cubieboard 一代的板子挂载一块 1.5T 的硬盘来做备份工作,由于使用的是 macbook pro ,所以配置成了 Time Capsule,但有一个分题,我使用的文件系统是 Btrfs ,由于版本比较老,不好限制单个子卷的大小,这样 TimeMachine 的备份慢慢的会占慢整个硬盘,所以需要限制一下,必竟这块硬盘还有很多其它的用途。

尝试了网上找到的一些方法,都不能实现,后来想制作一个 qcow2 镜像挂载出来,然后做为 Time Capsule,可惜的是 cubieboard 上面安装的这个 ubuntu 不带 nbd 模块,无法通过 qemu-nbd 来挂载 qcow2 镜像,后来想起来可以直接使用 raw 镜像,建立的时候直接使用稀疏文件就行。

先建立一个稀疏文件:

1
dd if=/dev/zero of=TimeCapsule.img bs=1 count=1 seek=1000000000

然后用 mount 命令挂载到目录:

1
mount -o loop /mnt/bak1.5T/block/TimeCapsule.img /mnt/bak1.5T/TimeCapsule

再通过 netatalk 将这个挂载的目录设置成 TimeCapsule 就可以了。

在 osx 下的时候默认 emacs 使用的是 utf8 编码,想在目录中搜索 gbk 编码的内容需要转换一下 emacs 的编码,然后再搜索,原理跟 vim 的那个差不多。

首先按 C-x C-m c 把编码切换成 gbk ,然后再用 M-x ag 搜索,这时输入中文就可以正常搜索 gbk 的内容了。

Gulp 是用 nodejs 写的一个前端构建工具,我现在主要拿来自动编译 coffee、less 以及压缩图片、同步文件、清理多余文件等工作。 gulp 使用 stream 方式处理内容,主要使用的几个办置方法如下:

  1. gulp.src: 来源
  2. gulp.dest: 目标
  3. gulp.pipe: 管道
  4. gulp.watch: 监视文件系统,文件改动时自动处理
  5. gulp.task: 任务

安装

首先需要在系统里面安装全局的 gulp 命令。

1
sudo npm install -g gulp

然后在项目的根目录下新建 package.json 文件。

1
npm init .

安装 gulp 包。

1
npm install gulp --save-dev

Read More

由于我一直使用 Sublime Text 3 不支持 GBK 编码文件的中文内容查找,所以就想改用 vim 试试。

vim 的多文件查找命令可以用 vimgrep。但是直接用 vimgrep 的话是不支持 GBK 的。需要先用下面的命令把编码转换过来

1
:set encoding=gbk

然后就可以 vimgrep 查找了

1
:vimgrep /基本/**/*

我用的版本是 emacs24 ,然后做了一堆的配置后启动速度有点慢,但有些东西又不好精简。好在 emacs 提供了 –daemon 模式,开启 –daemon 进程后只要用 emacsclient 连接就能非常快的开启一个 emacs。但目前碰到的问题是原来的字体配置在这种模式下无效了,原因好像是因为 –daemon 进程是没有加载 X 对应的字体配置。所以我用了下面的配置让 emacsclient 也能自动使用自定义的字体配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
;; 字体配置函数
(defun my-apply-font ()
;; Setting English Font
(set-face-attribute
'default nil :font "Monaco 18")
;; Setting Chinese Font
(dolist (charset '(kana han symbol cjk-misc bopomofo))
(set-fontset-font (frame-parameter nil 'font)
charset
(font-spec :family "文泉驿等宽微米黑" :size 18))))
;; 解决client模式下的字体问题
(add-hook 'after-make-frame-functions
(lambda (frame)
(select-frame frame)
(if (window-system frame)
(my-apply-font))))
;; 只有在windows模式下进行设置
(if window-system
(my-apply-font))

主要就是利用了 after-make-frame-functions ,在创建 frame 的时候判断是否是 window 类型的,然后再应用一下字体配置。

最近弄的一个网站需要在全站添加上统计代码,本来呢这个需求直接写到模板里面就好,可是这个程序的模板有好几百个,一个个去写太蛋疼了,而且有些静态文件生成什么不太好弄。所以就打算在nginx上动动手脚。

google一番查到nginx有个sub模块可以用来干这个事情,代码也很简单。

sub_filter '</body>' '<div style="display:none;"><script src=“[统计代码引用的js地址]” language=“JavaScript”></script></div></body>';

然后通过测试发现静态文件里面有加上这些代码,但是php的页面上始终没有替换过来。后来用nginx的lua模板去整这玩意,发现原来是因为gzip的关系。因为我是通过反代后端的apache来执行php的,而apache返回过来的内容是被gzip过的,所以替换的时候找不到 </body> 。解决办法也很简单,不需要改动apache的配置只要在 nginx的反代代码里面加入下面这一句,改写掉 header 请求信息就行。

proxy_set_header Accept-Encoding "";

这样后端返回的代码就不会被gzip。然后我特意观察了一下 nginx 的返回信息,nginx 会对后端的代码替换后再用 gzip 压缩返回给浏览器。

原来我一直使用的是 ssh -D 7070 root@xxxxx 这种方式的 socks 代理,前段时间了解到 openvpn 可以使用 udp 连接,然后又跑去试了一下 openvpn。还是各种不满意啊,最后了解了一下现在比较火的 shadowsocks ,装上试了一下,感觉相当不错。

openvpn

优点

  1. 兼容性好

Read More