一介布衣
2015-09-30
UglifyJS2 这个工具使用很长时间了,但之前都是在 gulp 自动构建 时用到了 UglifyJS 算法进行压缩.
最近玩了一下 UglifyJS2 ,做了一个 在线压缩javascript工具 欢迎点击玩耍.
为什么要压缩 javascript 因为每个人开发者的书写习惯,定义参数习惯,已经使用习惯都不一样.
所以相同的功能出自不同开发者代码各异.这里牵扯到一个代码所占空间.
以前端为例来说明
大家通常都会认为,现在在网络时代,动不动就是10M光纤,拨号上网让人感觉是上个世纪的方式.....
说法是没有问题,但是,我们今天讨论的并不是终端下载速度.
而是前端压缩对服务器有何利
一介布衣
2015-09-29
今天推荐 Mac OSX 下,方便高效的包管理工具 brew
brew 的全名叫做 Homebrew
它的功能类似于 ubuntu 下同下 apt-get ,或者 Cent OS 下的 yum 等包管理工具.
我们可以很方便的 安装,更新,卸载软件
brew 的官网
http://brew.sh/index_zh-cn.html
brew 安装
打开你的 mac 终端命令行工具,输入下面的脚本
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
因
一介布衣
2015-09-28
工欲善其事,必先利其器
所以逐渐 开发上线一些好玩的小工具
工具可以帮助我们完成很多事情,尤其是在线工具,不需要环境支持,不需要包的依赖,纯绿色,无公害 到今天为止,2个小工具上线,同时还专为为工具打造了一个聚合页
目前博客首页无入口,你可以点击下面链接进入
http://yijiebuyi.com/tools.html
在线生成二维码工具
支持二维码大小,前景色,背景色,长链接,多文字....等等
点击这里 在线生成二维码
欢迎玩耍,有想法,意见等可以进群讨论 --> 看右侧进群方式
回头还会专门开一篇博文讲述关于二维码生成
在线压缩 javascript
如果你的项目中
一介布衣
2015-09-25
你有招聘/求职机会,请联系 QQ:378989619 免费发布!
地点: 北京
坐标: 建国门
职位: node.js 开发工程师
岗位职责: 负责node.js网站后端开发。
我们找这样的你:
1. 1年以上node.js项目开发工作经验,熟悉MVC,熟悉express等开发框架
2. 熟悉linux系统
3. 良好的代码规范。对代码质量精益求精,志向于编写优美的代码
4. 善于思考,能独立分析和解决问题
5. 责任心强,具备良好的团队合作精神和承受压力的能力
我们的服务
手道轻来作为互联网健康养生020平台到家,主要包括整脊、拔罐、足底、艾灸四项服
一介布衣
2015-09-25
这篇博文完全上关于上一篇的优化 先看上一篇 node.js 在 Express4.0 框架使用 Connect-Busboy 实现文件上传
因为从上次博客改用 connect-busboy 来上传文件后,发现了明显的一个bug
bug 说明
文件显示上传 100% ,然后预览的时候,偶尔会发现图片只能显示一部分
这种情况在 png 格式 图片尤其严重
昨天重新 review 代码,发现一个bug ,当然和 connect-busboy 一点关系都没有,而是涉及到流的处理过程.
这里把上一篇 blog 里贴出的上传代码在放上来分析一下 function upload(req, res
一介布衣
2015-09-25
看着那个不靠谱的搜狗广告,先默哀一分钟......
找到一个 webstrom 的注册机,和大家分享,如果你手里有银子,当然要支持原版了
支持 webstrom 8.0 到 10.0
下载地址 不能保证一直有效,如果打不开或者找不到,欢迎进群询问.
下载 keygen 放到一个你指定的目录,或者就在当前下载目录,随你的便.
➜ /Users/zhangzhi/Downloads >
然后给 keygen 文件赋权限
➜ /Users/zhangzhi/Downloads >chmod 755 keygen
下面就可以启动注册机使用了
➜
一介布衣
2015-09-24
tab 选择让我们的操作更快捷,有些简单的界面选择,其实你不需要鼠标
但是你会发现 Mac 系统 下这个功能默认是不开启的
注意:这里说的是在系统 windos 窗口界面使用 tab ,并不是页面或者编辑文本环境 比如下面的这个使用场景
mac 默认方式我们只能用 鼠标,触摸板去选择.
其实你可以选择用 tab 键来操作,当然需要设置一下
系统 -> 偏好设置 -> 键盘
然后我们把左小角的 "所有控制" 选中即可
当你启用 tab 键的时候,默认的确认键就不是回车了,而是 空格确认
上图弹出选择框,默认 focu 到 关机 按钮
当你
一介布衣
2015-09-24
今天的话题包括2个部分
node.js 下使用 nvm 或者 n 来进行版本控制
nvm 安装node.js 版本后,重启终端 node , npm 环境变量失效
第一部分 用什么来管理 node.js 版本
首先应该欢呼庆祝一下 node.js 终于发布了有历史意义的正式版 1.0 ,虽然我们看到的是V4.0,其实他就是node.js 真正意义的 1.0, io.js 不负众望,完成了它的使命.
回头看这几年node.js 以及 io.js 的发展速度,各种版本的迭代发布,我们很有必要用一个 node.js 的版本管理工具来控制当前系统的 node.js 版本.
为什么
一介布衣
2015-09-23
css3 响应式布局学习
响应式:就是根据不同设备,或者设备不同分辨率,动态给出对应的样式变化
响应不同的设备
涉及到 css 中的 Media Queries ,这个词组被译为 "媒体查询"
Media Queries 用法如下: <link href="css/main.css" rel="stylesheet" type="text/css" media="screen" />
或者另外一种引入css 文件的方法
<style type="text/css" media="screen">
@import url("css/sty
一介布衣
2015-09-22
记录规整一些 关于CSS 处理中文 /英文 折行/不折行 省略 等问题.
这些问题涉及到了几个css 属性,简单记录一下,以备以后碰到
涉及到控制上面提到的问题,必须注意一点,你的容器设定了固定的宽度
英文字母换行,只对英文字母起作用,如果是单词,可能一个单词被拦腰折断 word-break:break-all;
word-break语法: word-break: normal(默认) | break-all | keep-all
Firefox、Opera不能识别
normal: 依照亚洲语言和非亚洲语言的文本规则,允许在字内换行。
break-all: 该行为与亚洲语言的
一介布衣
2015-09-21
前几天和大家分享了一篇 javascript生成二维码,实现微信跳转
里面提到了一个二维码的容错率,知道今天发现了一个bug ,又重新找了找关于javascript 生成二维码的资料.回头我会整理一下,提供微信端跳出内置浏览器的最佳方案
什么是容错率
顾名思义,就是容许犯错的概率
二维码的容错率
是指生成的二维码允许犯错吗? 不是!
二维码的容错率,是指你生成的二维码就算被遮挡了一部分,或者有一部分没有完全显示出来,当时用户通过各种各样品牌的手机都能扫描成功,这个被遮挡部分在全部的比值,就相当于一个容错率
所以二维码的容错率,跟贴切的叫法是,二维码的冗余度有多大.
什么是冗余度
一介布衣
2015-09-21
在任何一个项目中都缺少不了配置文件
具有下面的特点: 数据量不大,信息需要长期保存,容易维护
当然你也可以在数据库中建一张表,去存放这些信息,一点错都没有,但是,是不是有点牛刀杀鸡的感觉
今天和大家分享的是配置文件的定制,根据你的运行环境不同动态配置一张灵活的 config 配置文件.
之前的一篇博文 根据 ENV 环境变量不同加载不同的配置文件
这一篇可以说是上一篇的子章节,上一篇说的太笼统,
这一次针对一个点,然后铺开说一个功能
我的博客全部用绝对路径
为什么?
因为总有些人直接过来 copy 我的文章,然后不加出处,不署名,这是别人辛辛苦苦的劳动果实,作为一个I
一介布衣
2015-09-20
node.js 下利用 sitemap 生成站点地图.
大致的工作就是,我们生成一份提供给搜索引擎的 Sitemap
之前你获取在网络上找过各种在线生成 sitemap 工具或者服务,使用起来却都不尽人意.有的收费,有的最大抓取2层url ,还有的最大链接数限制在500个.
所以今天和大家分享的是如何用 node.js 来为站点生成 sitemap
什么是sitemap
借用百科的一段话
Sitemap 可方便网站管理员通知搜索引擎他们网站上有哪些可供抓取的网页。最简单的 Sitemap 形式,就是XML 文件,在其中列出网站中的网址以及关于每个网址的其他元数据(上次更新的时间、更改的
一介布衣
2015-09-19
javascript 中对于时间类型的处理 如何把日期字符串如“2015-09-19 09:48:46”转换为Date对象
第一种方法: 我们可以按下面的方法来拆分上面的时间字符串
var str="2015-09-19 09:48:46";
var strArray=str.split(" ");
var strDate=strArray[0].split("-");
var strTime=strArray[1].split(":");
var time=new Date(strDate[0],(strDate[1]-parseInt(1)),strDate[2],strTime[0]
一介布衣
2015-09-19
上一篇博客中和大家分享了关于 字符串转时间类型
这一篇顺便整理下 javascript 中 Date 类型的一些方法
var time = new Date();
var year=time.getYear(); //获取当前年份(2位)
var year1=time.getFullYear(); //获取完整的年份(4位,2015-????)
var moonth=time.getMonth(); //获取当前月份(0-11,0代表1月)
time.getDate(); //获取当前日(
一介布衣
2015-09-19
javascript 中 new Array() 和 var arr=[ ] 创建数组到底有何不同?
今天就探讨一个 JavaScript 中很常见的问题.
var arr=[]
这是一种字面量定义数组的方法
var arr=new Array()
这是调用数组构造函数生成的数组
上面的2种定义数组的方法到底一样不一样
目前我们大致的认同是下面这样的
用new 关键字去内存开辟一个存储地址比较耗资源,耗内存. 而字面量方式直接在内存开辟一个存储字段相对简单,不耗资源.
我们首先不去否定上面的结论对不对.
首先从功能上来说 var =arr=[] 和 var arr= new
一介布衣
2015-09-17
Redis.conf 配置文件详解 # [Redis](http://yijiebuyi.com/category/redis.html) 配置文件
# 当配置中需要配置内存大小时,可以使用 1k, 5GB, 4M 等类似的格式,其转换方式如下(不区分大小写)
#
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
#
# 内存
一介布衣
2015-09-16
XSS攻击是什么
XSS又称CSS,全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。
XSS 攻击分为2种
非持久性的攻击
持久性攻击
非持久性攻击 顾名思义 只影响当前展示页面
大概类似下面这种情况
=========
比如右侧你可以看到博客的搜索框, 搜索的关键词最后会在页面上方显示
一介布衣
2015-09-15
关于Html5 的一些定义 及旧的Html 规定有何区别
html 头的定义
html4 及 以下版本
<!DOCTYPE HTML PUBLIC "-W3CDTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
html5
'`
DOCTYPE 这个定义在Html 页面头部的参数告诉浏览器,你当前的内容是什么类型,需要如何渲染解析
那如果你把 html4 解析的页面定义成了 html5 个规范,会发生什么情况呢?
答案是 什么情况都没有
W3C标准已经像地球所有人
一介布衣
2015-09-15
node.js下四种post提交数据的方式
今天说分享的是其中一种,就是上传文件.
Express 4.0 以后,将功能原子化,高内聚,低耦合,独立出了很多中间件
今天主要分享文件上传
对于connect-multiparty ,他是专门处理此类post数据相关的依赖包,也是博客之前使用的方式
github 官方地址: https://github.com/andrewrk/connect-multiparty
安装 npm install connect-multiparty
使用 var multipart = require('connect-multiparty')
一介布衣
2015-09-14
因为没有新增 css 类别,所以关于css 的东西暂时归类到了 Html5
今天干活遇到的几个问题,下班前和大家分享
透明遮罩层
居中内容不透明
居中div显示内容
因为我的html5页面只在手机端展示,所以不考虑万恶的IE低版本浏览器
并且我把单独的css内容直接定义在html 标签里,这样你们看起来更加直观
透明遮罩层
<div id="nav_img_ios" style="display:none;height:100%; width:100%;
position:fixed; _position:absolute; top:0; z-index:10
一介布衣
2015-09-13
博客经过几次改版,但是阅读性一直不太好,让人读起来比较累,分不清主次.
所以周末尝试把之前的百度编辑器换成了 markdown 编辑器,希望在阅读性方面有提升.
博客的几处改动
因为之前的博客是html格式,现在是 markdown 格式,所以在首页提取缩略内容的功能去掉了.
首页标题字号调小了
列表页标题下方增加了博客分类
内容页的渲染为了兼容以前的老博客,既可以渲染 html 博文,也可以渲染 markdown 博客.
代码视图变动 function(){
console.log('欢迎光临一介布衣博客');
}
单行代码视图 alert('一介布衣');
关于mar
一介布衣
2015-09-12
这一篇和前面的一篇博文有点类似,forever 利用别名启动 node.js 服务简单和大家分享三点:一:forever 利用别名启动 node.js 服务首先我们需要为 node.js 启动文件创建一个 软链接ln-sapp.jsnode_start有了上面的软链接,我们就不需要再使用 app.js 来启动node.js 服务了.二:git 拉取指定分支的最新代码gitcheckoutdev
gitpull三:创建 shell 文件nanostart_node.sh输入下面内容,保存#!/usr/bin/envbash
projectPath=/code/test
cd $projectPa
一介布衣
2015-09-11
现在的二维码相当火,借着移动互联网的风口也快飞起来了.现在各种语言的各种开源包,基本都有对应的生成二维码的源码.但是今天我们分享的不是服务器生成二维码,而是前端页面如果用 javascript 来生成一个二维码.这种动态生成二维码的需求越来越多.如果都要依靠服务器端赖生成,第一:面临资源紧缺的状况,如果在大的并发环境,这种cpu密集型计算必定导致一个问题,就是请求排队,那就不用谈了.用户不会一直在傻傻的等你.第二:就算你顺利生成了二维码,还面临一个网络传输带宽的压力,虽然它很小很小,但是当在一个并发压力大的环境下,依然面临带宽被占的问题.这样说来,如果能在客户端生成二维码,貌似是最好的解决方案
一介布衣
2015-09-11
在使用mac 的时候,是不是常常遇到这样一种情况.你想创建一个文件,可是找不到入口.....如果你想再打开一个 finder ,该怎么办?在 finder 图标上右键, 新建 finder 窗口,如果想让它想 chrome 一样新建标签该多爽....那么今天推荐的这个插件可以满足你,而且免费哦.请自己用 google 百度一下 'XtraFinder'查看 XtraFinder 插件提供的扩展功能,根据自己的喜好随心设置.出自:XtraFinder 让你的mac finder 更有特性扩展更人性出自:XtraFinder 让你的mac finder 更有特性扩展更人性
=====下面开始进入
一介布衣
2015-09-10
之前有过一篇博文关于多个ssh key 在同一台电脑上如何管理使用其实哪一篇并不完善.所以想专门再开博客来了解下有关 ssh 和 ssh-agent 的一些知识点.ssh-agent 是什么:出自:ssh-agent 与 ssh 的区别 (9月10日更新)它是linux 系统上的一个程序,这个程序可以控制和保存公钥身份验证所使用的私钥程序,听起来好拗口.当 ssh-add 把私钥交给 ssh-agent 来管理时,其他程序需要身份验证的时候都可以申请交给 ssh-agent 来完成整个认证过程.所以,到这里我们应该大体了解 ssh-agent : 它就是一个帮助我们验证身份的程序.如何使用语法
一介布衣
2015-09-09
去年12月,多位重量级Node.js开发者不满Joyent对Node.js的管理,自立门户创建了io.js。io.js的发展速度非常快,先是于2015年1月份发布了1.0版本,并且很快就达到了2.0版本,社区非常活跃。而最近io.js社区又宣布,这两个项目将合并到Node基金会下,并暂时由“Node.js和io.js核心技术团队联合监督”运营。本文将聊一聊Node.js项目的一些历史情况,与io.js项目之间的恩怨纠葛,他们将来的发展去向。希望能从历史的层面去了解这个开源项目在运营模式上是如何演变和发展的Node.js项目的由来自从JavaScript被Brendan Eich创造出来后,
一介布衣
2015-09-09
出自:node.js 下 forever 利用别名启动 node 服务这一篇博文又和大家分享 forever 这个开源包.今天说到的 forever 别名启动node.js 服务,和上一篇博文密切相关,涉及到 linux下创建硬链接 软链接的问题 ,还没有看的现在就去看看,不收费的,随便看!我们平时如何用 forever 来启动 node 服务:foreverstartapp.js利用 linux 软链接 (别名) forever 如何启动 node 服务:foreverstartapp_link上面的 app_link 就是 app.js 文件在 linux 系统下的一个软链接然并卵,这
一介布衣
2015-09-08
linux 下的一个指令 ln作用: 创建软链接或者硬链接Linux 系统下每创建一个文件,系统都会为此文件生成一个 index node 简称(inode) ,而每一个文件都包含用户数据(user data) 与 元数据(metadata)用户数据里记录了文件的真正内容.元数据里记录的是文件的附加属性,如 文件大小,创建时间,所有者等,其中 上面提到的 index node 就保存在元数据中.在linux 中文件名并不是文件的唯一标识,index onde 才是唯一标示,系统查找文件也是通过 index node 来查找内容数据块.如何查看文件的 index node:➜/Users/zha
一介布衣
2015-09-06
今天发现一个问题,当我在微信内置浏览器访问一介布衣博客时 ,竟然展示了广告...这当然很惊奇:一. 我在投放广告的时候选择了移动端不展示.二.我的blog 是响应式布局,就因为一个横条广告,彻底毁了. (在移动端浏览器不显示广告,但是微信内置浏览器显示blog底部横幅广告)所以,必须要解决掉.首先我需要准备一个公共方法,来判断当前浏览器是不是微信内置浏览器 ,正好用的了我之前写到的一篇blog .我们直接在公共的地方把此方法定义下:functionisWeiXin(){
varua=window.navigator.userAgent.toLowerCase();
if(ua.match(/M
一介布衣
2015-09-05
这几天宅在家里享受胜利日的假期,连续2天下雨,出不去....无聊之时会玩一玩 zsh ,确实是个好东东,作为一个攻城狮的你,必须要去玩转一下.之前介绍了如何配置利用oh-my-zsh 来配置你的zsh 及 zsh 通过修改配置文件,皮肤模板来定制化属于你的shell上面的传送链接你可以直接点击查看 (这句话好像是废话,忽略吧)今天分享几个 zsh 使用小技巧:如果你不知道该如何使用 zsh ,那么你之前如何使用的 bash ,现在就怎么使用.没错,这就是一个技巧.zsh 360°无死角全兼容 bash ,之前怎么写,现在就怎么写. 这才叫酸爽!按 tab 键补全之前在 bash 环境下.如果我
一介布衣
2015-09-05
前面有几篇介绍了如何开启zsh终极装逼模式,如果你已经开启,请好好的装下去.今天这个插件会助你一臂之力,加油,骚年!今天说的这个东东看上去确实有尿性,不管我如何修饰都抵不过它的一张效果图.想要你的shell有这样的效果,首先满足下面的条件:1 你用 oh-my-zsh 来协助你完成 zsh 的配置2 你开启了 zsh3 你下载了这个 插件4 你把插件执行shell 写到了你的 .zshrc 配置文件中上面说到的 1,2 在之前的博文里面早,最上面其实我贴出来如何开启 zsh 的链接.(如果你没有鼠标的话,肯定点不开)今天就是分享下 3,4 提到的内容:如何下载这个插件:官网:http://mi
一介布衣
2015-09-04
上一篇博文简单的介绍了 zsh是什么,如何依赖oh-my-zsh配置这一篇和大家分享一个小插曲,就是换皮肤,配色.人都是感性的动物,大多数开始鼓捣的东西,必须看上去顺眼.oh-my-zsh 帮我们集成了很灵活的皮肤配置方案.皮肤wiki :https://github.com/robbyrussell/oh-my-zsh/wiki/themes 里面对 oh-my-zsh 集成的各种皮肤都有说明和示例,你看上眼的就可以试用下.首先在wiki 里找到你中意的皮肤 名称.然后去 修改 zsh配置文件➜/Users/zhangzhi>nano.zshrc然后在配置内容中找到#timethato
一介布衣
2015-09-03
抱歉,这篇博文推迟发布了,人都是有惰性的...看在这个牛逼闪闪的标题就原谅我吧!为何这篇文章要归类到 mac 下? 第一个问题,稍后我们说明下.zsh是个什么东东? 第二个问题...你应该稍微接触过一点点shell ,或者了解一点点?如果不知道 shell ,那就点下广告离开吧, 人生苦短,时间珍贵.在unix 内核的操作系统中,当然现在衍生出好多分支,linux ,OS X 都算.shell 就算和上面这些系统内核指令打交道的一座桥梁,我们通过键盘输入一种自己容易记忆识别的符号标识(shell 命令)然后 shell 解析这种命令再反馈给内核去执行一系列操作.那么问题来了,今天要说的zsh
一介布衣
2015-09-01
初学css 的同学很难分清 margin 和 padding 真正所表达的意思.很早之前我们知道 padding 表示内边距, margin 表示外边距.这个定义让人迷惑.按照上面的盒子模型,可能理解起来更好一点.这个图里有一个盒子,就是除去最外层黄色部分.这时你独立看剩下的这个盒子,padding 表示content 距离盒子上下,左右边的距离(不包括border本身距离)所以 padding 是指盒子内容相对盒子本身上下左右各边的距离.当然也可以 单独通过 padding-top,padding-right,padding-bottom,padding-left 来分别制定不同方向的边框.
一介布衣
2015-09-01
找准自己的位置很重要.页面也是一样.设计师出手的psd是这样的结果施工后的效果是这样的:这样的结果相信PO喝完酒也不会验收成功吧.页面在设计时的层次,羽化,字体,大小,边距,背景等.这些都不是随便堆砌起来的.所以切页面的时候要完全按照设计师的psd 效果来实施,才不会让最后的产品和设计相差甚远.其中,比较难的是层的定位.所以今天大概说一下 position 属性相关的一点点知识分享.position 属性包含如下几个值:relative 相对的 (这个属性值有参照物)absolute 绝对的 (这个绝对其实也是有一个参照物的)fixed 固定的(就像钉子钉在那里一样)static 静止的 (这