分类目录归档:web

nodejs npm 加速

国内使用npm安装nodejs 组件会无比的卡顿,经常会失败。还好万能的taobao给我们提供了一个国内能快速访问的镜像。http://npm.taobao.org/

同步组件比较全。速度有保障,再也不用死卡死卡了。

使用方法:

1,使用cnpm组件安装组件

npm install -g cnpm --registry=https://registry.npm.taobao.org

2,修改npm源获取地址

最方便的就是使用第一个方法。

原来png图片比jpg要大很多倍

今天准备把网站图片缩略图全部改成png的,本来以为png图片会小很多。结果转换完以后傻眼了。原来2.1GB的图片,转换后变2.5GB了,整整多了400MB。这次算是失败了,重新转回来吧

使用linux find命令:

find . -name original.jpg   |awk '{b= $1; sub(".jpg",".png") ;print "convert " b " -resize 3000x220 " $1}'  | bash

png图片格式的特点如下:

公认的最适合网页使用的图片格式,优点是能像gif一样透明还能像jpg一样保留更多的颜色,并且效果要比jpg好,而且它可以渐变透明,不像gif要透明就100%透了,这种格式的缺点是透明不兼容ie浏览器,不过有方法弥补,另外一点是体积稍微有点大。

所以,以后除非是涉及logo相关的图片,上传的图片还是jpg的比较省空间!

分屏后台运行神器tmux

使用screen命令有个问题就是当打开的窗口多的时候会出现screen进程占用cpu资源过多,分屏的环境没法保存的问题。当分屏之后再进入当前会话,分屏会分成几个窗口使用命令切换,无法在一个屏幕展示。

有了tmux就不会有这个问题了。tmux命令键和screen基本一致。screen是用ctrl+a前置键。tmux使用 ctrl+b前置命令键。

使用方法:

tmux #进入tmux环境
tmux ls #显示已经打开的tmux列表

ctrl+b: 命令前置键与下面命令配合
d : 离开当前会话,回到普通终端模式,还能再回来哟
n : 切换到下一个窗口,多窗口模式
c : 新建一个窗口
p : 切换到上一个窗口
" :垂直分屏这个很好玩
% :水平分屏
o : 小窗口间切换
方向键: 小窗口按方向键切换
x :关闭当前小窗口
!:关闭所有小窗口
w :选择当前打开的窗口列表可以通过上下键切换

最后我要说用了tmux,screen就弱爆了 。tmux占用的资源特别少。很稳定还,分屏效果更是爽歪歪

玩的开心;

Linux Screen 分屏持续执行进程神器

Linux下的一个神器啊。Screen,可以分屏使用,还可以随时让好多事,后台持续运行!

ubuntu下安装很方便 apt-get install screen

screen #进入screen命令

ctrl+a :这个是标准的screen下命令的开头然后附加一下键

d :detach分离当前窗口,让他后台执行

S :分屏操作

c :分屏后新建一个会话

k : 关闭当前窗口

n : 进入下一个窗口

w : 列出窗口列表

screen绝对是日常运维必备神器。完全可以替代nohup命令作为后台运行常用工具

JavaScript 秘籍系列(1)异步

经过一年多的参悟,哥明白了一些JavaScript的秘密。这里分享下,JavaScript是一个披着c语言皮的lisp语言,和ruby一样灵活。他有很多诡秘的特性,这里先介绍的就是他的异步特性。

异步,JavaScript是一个事件驱动的语言。怎么理解呢,他是一个事件队列,在不停的等待触发。有事件来了,相应的代码就会执行。这点很不像c语言和php这类过程式语言和Java、c++这类面向对象的语言。

首先说一个示例。

var a = 123;

(function() {
a = 124;
})();

alert(a);

这段代码会怎么执行呢?第一行代码会赋值123给a ,接着 匿名函数会直接赋值124给a,然后输出 a的值124;

如果使用异步的调用就不会是这样了

function bark (callback) {
 
 
 setTimeout(function(){
 a++;
 callback("aa"+ a);
 },0);
}

var cb = function(msg) { console.log(msg);}

var a = 123;
bark(cb);
a ++;
var mg = 'bb'+ a;
cb(mg);

这段代码就会异步执行,先输出bb开头的,然后输出aa开头的代码。这种操作一般都是用来将一些事件先执行了,耗时的事情稍后让他自己慢慢执行。

异步的方式还有很多:

1,事件驱动,on事件,omit触发事件。

2,就是setTimeout和setInterval驱动的异步执行策略。

剩下的就是在这两个基础上组合实现的设计模式的实现了。