月盾的博客

前端工具gulp的用途和使用方法

月盾

在接触前端开始就听说过grunt和gulp是很叼的前端构建工具,但不知道到底有多叼,只是听说可以自动编译less,sass为css,目前还没有使用less和sass,所以也就没有尝试使用grunt和gulp。但是作为一个技术爱好者还是经不住诱惑,照着网上的教程简单使用了一下,总算是知道有什么用处了,因为都说gulp比grunt更简单好用,就以gulp的使用方法为例来说明一下。

文件合并:关于文件合并很多人存在这样的疑惑,在前端开发中到底该把所有js和css写在一个文件里还是各个页面分开写,我的建议是开发的时候分开写,上线的时候合并为一个,这样的好处是对于浏览器来说,不同页面中相同的文件默认会请求一次缓存下来,其他页面请求相同文件时就直接从缓存中读取,减少文件的网络请求可以提高网页速度,所以文件合并的是很有必要的。

2.文件压缩:既然都合并了,何不再压缩一下呢

3.语法检查:这个功能一般会和下面第4条功能配合使用,当文件修改的时候检查是否有语法错误,并在命令行中输出错误信息。

4.监听文件变化:监听某个目录下文件是否修改,修改的话就执行特定的操作,比如上面几个操作。     以上4点是比较常用的功能,更多功能根据自己需要添加

var gulp = require('gulp');
var jshint = require('gulp-jshint');//语法检查
var concat = require('gulp-concat');//合并文件
var uglify = require('gulp-uglify');//压缩代码
var rename = require('gulp-rename');//重命名
 
// 语法检查
gulp.task('jshint', function () {
return gulp.src('public/javascripts/*.js')
.pipe(jshint())
.pipe(jshint.reporter('default'));
});
 
// 合并文件之后压缩代码
gulp.task('minify', function (){
return gulp.src('public/javascripts/*.js')
.pipe(concat('all.js'))
.pipe(gulp.dest('public/javascripts/dist'))
.pipe(uglify())
.pipe(rename('all.min.js'))
.pipe(gulp.dest('public/javascripts/dist'));
});
 
// 监视文件的变化
gulp.task('watch', function () {
gulp.watch('public/javascripts/*.js', ['jshint', 'minify']);
});
 
// 注册缺省任务
gulp.task('default', ['jshint', 'minify', 'watch']);
// gulp.task('default', ['jshint', 'minify']);

目录结构:

年中总结

月盾

三月的时候做了一个简单的计划,主要是在前端知识方面的学习,包括HTML5,CSS3,bootstrap,angularjs。到目前的四个月时间里工作内容基本包揽了所有前端任务开发,从不会到会,到熟练,对于我来说痛并快乐着,学习过程虽然艰难,但是如果让我每天重复一样的工作内容真的会很烦躁,而现在连做梦都会梦到遇到的技术难题,想到解决办法就迫不及待第二天上班去解决。这样一路下来,除了angularjs不太熟练其他都可以轻松胜任,这是不是离全栈更近一步了。

虽然angularjs这个坑挖的越来越深,下一个2.0版本也不向后兼容,让人纠结该不该继续学习,不过其实大家都对它的先进性认可的,暂时不会放弃。No这样的话前端技术暂时没有要学习的,接下来就是要学习服务器方面的东西,Linux操作系统,Nginx服务器使用,MySQL数据库优化,NoSQL公司暂时没有使用就先不深入学习了,不过好在公司的技术使用上有决策权,如有必要还是希望能用上,从上次活动服务器挂掉得出结论,MySQL不作特别优化处理是有点难以支撑高并发,有点与nodejs不搭调。

总体来说,这几个月成长不少,除了自己努力之外还要感谢公司提供了我能够充分发挥的环境和前辈同事的指导和老板的信任。——不论公司最后成败,付出的努力不会付之东流。

旅行有什么意义?

月盾

在网上到处都能看见诸如:“世界那么大,我想去看看”,“来一场说走就走的旅行”,“年轻人最值得去的N的地方”,“再不出发你就老了,年轻人”等等。不知道从什么时候开始出去旅游成了年轻人必干之事。给自己的理由是:“给心灵放个假”,“从不同角度去看看这个世界,在一个地方呆久了会被周围环境禁锢的”,“增加自己的眼界,开阔自己的胸襟”,“年轻时不去,老了就去不了了”,总能给自己找一个很充分的理由把自己都感动了。

旅行的意义

但是我想站在一个反面的位置来说说旅行到对于很多人来说其实没什么意义: 首先是旅游是一件耗费时间和金钱的事,没有充裕的时间和金钱想要去旅行着实困难,也有人说可以穷游,是啊,当然可以,不过如果你没有做好风餐露宿,忍饥挨饿,跑断腿的心理准备就暂且打消这个念头,否则就准备好帐篷睡袋睡桥洞下吧,一个月后回来连亲妈都不认识你了。在时间上来说,除非你放下工作,不然只有周末的时间是没法去远处旅行的,如果只是在周围的小圈子里转还能算旅行吗?所以我说的旅行是指去有着不同文化的地域和国家。

旅行的意义

其次是旅游是否具有放松心情的功能,说旅游是为了暂时抛开工作去放松一下,可是如果工作上还有很多事需要做,还能好好旅行吗?如果你的工作很轻松,那么还真该去旅游,因为你太闲了,你的工作太乏味太无聊了,只能用旅游去打发时间,我觉得就算是有钱的老板也不可能不关心工作而只想着去哪旅行的。不过事实确实是只有工作轻松无聊的人旅行的比较多吧!对于普通人来说旅游应该是有目的的,比如工作太累,心情不好,这时一次旅游可以分散注意力,改变心情。如果纯粹是为了旅游而旅游,那么这能得到什么?只不过是去别的地方消费而已。在国内出去旅行看到最多的还是人。

旅行的意义

我开始怀疑那些年轻人该出去旅游的话是出自何人之口?是年轻人本身吗?你凭什么说年轻时候该出去旅行而不是踏实的工作学习,多读几本书!你确定旅行能长见识而不会影响工作学习?又不是什么作家诗人画家的需要出去找灵感,如果是靠旅行来增加工作激情,那么只能说你还不适合工作或者这份工作不适合你。是老一辈人说的?那他有没有说他自己因为旅行获得什么益处,可能是他后悔年轻时没有旅行,那么你的父母爷爷辈的有没有经常教导你说:年轻人不要光埋头工作,要经常出去玩玩,到处走走,增长点见识,免得老了和我一样后悔。那么话说回来,为什么是年轻的时候该出去旅行呢?有这么几种解释:年轻的时候有时间,没有家庭负担,增加阅历。说的好有道理,谁能不服,所以就有很多人都这么说这么做了。那么我想问,你旅行的次数和回家看父母的次数哪个多,一年全国各地,甚至满世界的跑,有没有回家看过?你说年轻时没有家庭负担,有没有想过还有父母呢,怎么不带他们也去玩,他们年轻时可能为了你而没时间去玩,现在你有时间金钱去玩怎么不带上他们!

旅行的意义

我倒是为了写这篇文章搜索了下关于旅行的内容,鼓励出去玩的大多是旅行社,旅游网站发的,个人发的却又没说旅行能获得多少好处,他也不反对旅行,让你自己体会去,当你体会了以后别人问的时候是不是也用同样的话去回答?这样旅行的结果是多了谈资,晒照片去了哪哪哪,吃了什么美食,一大把各地门票,出国签证,还有账单。旅游真有那么多好处你倒是这个总结让大家也学习学习,不要只让我自己体会。

旅行的意义

旅游有时候确实可以改变一些事,只不过很多人被网络上的话给洗脑了,盲目跟风。读万卷书,行万里路,没有读万卷书,只行万里路一样是无知。世界那么大,宇宙那么浩瀚,人生只不多短短的几十年怎么可能了解全部,想要自己人生有意义最好的办法应该是让今天比昨天更好。

互联网产品体验分析

月盾

在寫產品體驗報告的時候,經常會陷入這樣的一個困境,即把體驗報告寫成了這個產品的說明書或者營銷文案,幾乎把這個產品的所有功能又複述了一遍,重點不突出。在網上看了不少的體驗報告,基本也都陷入了這樣的一個怪圈。很多人一上來就很宏大地開始架構諸如『產品定位』、『戰略發展』、『市場狀況』、『商業模式』、『產品結構』等字眼。

關於這樣的分析方法有不少問題。一方面是缺少足夠的信息來源。比如『商業模式』的決定是需要有不少的信息輸入作為參考的,而你又並非這個公司的人,憑著在網上搜刮的一點資料難道就可以做出決定嗎?另一方面時,研究一個產品的重心應該放在哪個方面?面面俱到的分析方法必然會失去重心。

對於這個問題,我自己的結論是:分析一個產品無需宏大整體的架構,只需要把自己當成用戶,問自己幾個問題即可。

這幾個問題是:

  1. 你會繼續使用這個產品嗎?( 第一關,該產品是否能繼續在該用戶的手機上存在。)
  2. 你會使用它的什麼功能?( 該產品給用戶提供了什麼價值。)
  3. 如果跟XX 擺在一起, 你會選擇哪一個?( 該產品的差異化優勢)

為什麼選擇這樣幾個問題而非宏觀地進行分析呢?這個問題可以從我們最近流行起來的幾個App看出端倪。無論是足跡和臉萌,都有一個很重要的特點,即它們的某一個功能很明顯地比其它功能要突出很多,甚至其它功能都不被用戶意識到,但是就這麼一個功能,就能使它們成為一個好的產品。也就是說,用戶在感知一個產品的時候,並不會去感知這個產品的整體,而只會關注一個問題:這個產品能幫助我什麼?如果這個產品的這個功能能夠為我帶來價值,就算其它功能都是雞肋,那留著也就留著吧,我不關心。

大多數玩微信的人不玩遊戲,也不關心『我的錢包』裡面豐富的服務,但不妨礙他們成為微信的重度用戶。

由此我們得出一個什麼結論呢?結論是:一個好產品可能并不遵守木桶理論,只要最長的那根木板足夠長,這個產品就足夠好。因此,當我們去分析一個產品的時候,我們應該分析這個產品的關鍵驅動因素是什麼?它最亮的那個亮點是什麼?它亮到什麼程度以至於我決定把這個產品給收下來而不是長按刪除。不要再寫那些長長的貌似很系統的分析報告了吧,我相信微信里的很多頁面你從沒進去過。

内容摘自知乎:http://www.zhihu.com/question/19851117

redis启动失败

月盾

redis-server.exe redis.windows.conf 使用上面命令启动redis服务的时候报了以下错误信息: The Windows version of Redis allocates a memory mapped heap for sharing with the forked process used for persistence operations. In order to share this memory, Windows allocates from the system paging file a portion equal to the size of the Redis heap. At this time there is insufficient contiguous free space available in the system paging file for this operation (Windows error 0x5AF). To work around this you may either increase the size of the system paging file, or decrease the size of the Redis heap with the –maxheap flag. Sometimes a reboot will defragment the system paging file sufficiently for this operation to complete successfully.