NVM 使用淘宝镜像

nvm 是一个好用的 nodejs 版本管理工具,但由于众所周知的原因,当使用 nvm 下载安装 nodejs 时,有时候会出现龟速甚至无法下载的情况,其实他是可以换源的。

MAC / Linux 下只需要执行如下命令即可:

Windows 的方案点这里

Vue Syntax Highlight with pug in Sublime Text

jade 这个项目组也是够任性的,说改名就改名,造成了 sublime 里面代码高亮失败,升级了 Vue Syntax Highlight 后依然无果,最后查明原因(via),原来还要安装一个 pug 的插件才可以,完整的支持如下:

1. 打开 Package Control:Install Package,输入 Vue Syntax Highlight,安装;
2. 参照 1 的方法,输入 pug,安装。

Have fun!

compass with sass

前段时间将项目里面的css文件全部转换为使用sass(.scss)来管理,迁移工作十分顺滑。其中主要就归功于compass的功劳。

compass是一套基于ruby的,自动化编译sass文件为css文件的工具,使用相对简单:

1. 安装ruby环境(如果你是Mac用户,那么可以忽略此条,windows用户可以参考官方安装文档);
2. 安装sass(同第一条,如果你使用Mac环境,系统就已经内置了sass引擎,如果是其他系统单独安装,请参考官方安装文档);
3. 安装compass,打开终端,运行如下命令

4. 在终端中,将操作路径切换至项目所在目录,运行如下命令创建初始化项目

如果你想在一个已有的项目中启用compass,只需要切换到项目目录,运行

5. 此时终端中会返回一大串的文字,也就是帮助文档了,项目里面会有一个最基本的目录结构,默认情况下,会把sass目录中的.sass/.scss文件编译后以.css文件的方式存放到stylesheets目录下,通过config.rb来修改默认配置。
6. 使用的时候,在终端输入compass compile,会进行一次编译,输入compass watch,会监听sass目录下文件的变化情况,只要文件保存就会编译一次。

Have fun!

PS:有一个很坑爹的问题在于,使用gem的时候,由于源服务器被墙,下载失败的话,请挂全局代理后安装相关软件。

去除 wordpress 里面的 google fonts

最近使用 Google Fonts 做字体的网站越来越多了,最为典型的就要数 Stack Overflow 以及 WordPress 了,在天朝,访问使用了 Google Fonts 的网站有一个通病:访问极慢(原因你懂的),于是乎结果就是,如果你不去主动点击浏览器的停止加载按钮,页面就会一直被阻塞(通俗的说就是一片空白)。

尝试寻找一些浏览器级的解决方案,比如把 Google Fonts 自动干掉或者替换为大陆服务器一类的,但是无果。看来只有自己改造了,Stack Overflow 是不指望了,但是 WordPress 是掌握在我们自己手中的,想要干掉并不难,基本上从以下几个方面着手:

1. 使用插件 Remove Open Sans font Link from WP core,这个插件的功能和使用会像他的名字长度一样复杂,吗?不,他就是简单的把 WordPress 里面的 Google Fonts 干掉了,使用也很简单,添加后启用就行了;

2. 上面一条是针对 WordPress 后台管理页面的,如果想要去除主题里面的 Google Fonts 怎么办呢?找到主题文件里的 functions.php ,在文件末尾加上如下代码即可:

3. 其实1和2实现的功能是重复的,取其中的一个方案即可,但是我当时使用时,同时启用了以上两个方案后,页面中依然会加载 Google Fonts,这么丧心病狂的事情,最后经过我周密调查,发现是页面上的 Google Adsense 挂件干的,这家伙每次加载就会搞一个 iframe,然后里面的页面会加载 Google Fonts。考虑到挂了十几年的 Google Adsense 却从没有收到过他的支票(纯支持的赶脚啊,谁叫我是谷粉呢?),他不但不怀着一颗感恩的心提高一点我的搜索引擎排名,还给我的加载速度拖后腿,于是一怒之下,我就把这个挂件干掉了。于是乎,世界恢复了宁静,整个 Blog 前前后后都不再有讨厌的 Google Fonts 了。

你也想试试吗?那就赶快拿起键盘吧。

Quick Sort

快速排序(Quicksort)是对冒泡排序的一种改进。由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。

设要排序的数组是A[0]……A[N-1],首先任意选取一个数据(通常选用数组的第一个数)作为关键数据,然后将所有比它小的数都放到它前面,所有比它大的数都放到它后面,这个过程称为一趟快速排序。值得注意的是,快速排序不是一种稳定的排序算法,也就是说,多个相同的值的相对位置也许会在算法结束时产生变动。
一趟快速排序的算法是:
1)设置两个变量i、j,排序开始的时候:i=0,j=N-1;
2)以第一个数组元素作为关键数据,赋值给key,即key=A[0];
3)从j开始向前搜索,即由后开始向前搜索(j–),找到第一个小于key的值A[j],将A[j]和A[i]互换;
4)从i开始向后搜索,即由前开始向后搜索(i++),找到第一个大于key的A[i],将A[i]和A[j]互换;
5)重复第3、4步,直到i=j; (3,4步中,没找到符合条件的值,即3中A[j]不小于key,4中A[i]不大于key的时候改变j、i的值,使得j=j-1,i=i+1,直至找到为止。找到符合条件的值,进行交换的时候i, j指针位置不变。另外,i==j这一过程一定正好是i+或j-完成的时候,此时令循环结束)。

原理:

代码示例(PHP):

Mac 中使用 Sublime Text 编译 Java 文件后自动运行

一看标题一大坨,其实就是实现一个简单的功能,写 Java 程序的时候,按 Command+B 之后,直接在 console 里面显示结果,这样就方便很多,还省了一个终端窗口,有木有?

找了一大圈教程无果(都是简单问题复杂化,并且还无效),最后在 Quora 找到个靠谱的答案,这儿用大白话记录下 Step 吧:

1. 安装 Java 并配置环境(这我就不说了哈,网上一大坨);
2. 打开 Sublime Text,点击 Sublime Text -> Preferences -> Browse Packages,新建文件夹 Java;
3. 新建一个文档,名为 JavaC.sublime-build,其中粘贴如下内容:

4. 将这个文件拖到第二步中新建的那个 Java 文件夹;
5. Command+Q 退出 Sublime Text 后重新打开,随便找个 .java 文件 Command+B 试试。

实际效果如图:

Zen Coding

有幸接触到一种集实用性与逼格于一体的书写代码方式(主要是 HTML 代码了):Zen Coding

Zen Coding 的核心思想是你可以像书写 CSS 选择器那样去简写 HTML 代码,而不需要不停的复制粘贴,这样离搬砖似乎又稍微远了一点。

官网上有一个如此的示例:

然后你按 Tab 之后,它就会被自动填充为这样:

忽然之间就高大上了有木有?这儿有一段操作视频:

目前 Zen Coding 的插件几乎兼容市面上各种主流编辑器,官网上就可以找到对应的,比如我所使用的 Sublime Text 的 package 就在这里可以找到:http://docs.emmet.io/

Have Fun !

SourceTree – 好用的可视化源码管理工具

之前在 windows 上操作 git 一直都是使用命令行或者 TortoiseGit,由于最近一直在琢磨着把工作平台换为 MAC,所以考察了一下相应的工具,于是发现了 SourceTree

SourceTree 是一款由 Atlassian 推出的用于管理源代码的工具,可以安装在 Windows 和 Mac 上,用以管理你托管在 Github、BitBucket 或其他自建 Git 服务器上的源码。使用非常方便,如果是从 TortoiseGit 迁移过来的用户,上手只需数分钟,大致界面见图:

有了这个工具以后再也不用一个个手把手教团队中新来的非程序员如何使用生涩的命令行代码了。并且对整个项目的分支和走向也会有一个直观的认识。