casperjs不支持phantomjs 2.x 版本解决方案

遇到的问题如题: 首先,安装完成后,直接运行报错如下: 解决方式,去掉casperjs的版本限制代码,代码所在目录casperjs\bin\bootstrap.js,要去掉的代码,当然你也可以替换成下: 若是替换,可用下面代码 操作完成后,再次运行发现又出了如下错误: 还是需要修改上面的casperjs\bin\bootstrap.js文件,在文件上方加上如下代码: 至此,可以正常运行了! 参考文章: http://stackoverflow.com/questions/28656768/issues-running-casperjs-with-phantomjs2-0-0-on-mac-yosemite https://github.com/n1k0/casperjs/issues/1150

javascript如何取得去掉字符串最后一位

代码: 定义和用法 语法 stringObject.slice(start,end) slice() 方法可提取字符串的某个部分,并以新的字符串返回被提取的部分。 参数 描述 start 要抽取的片断的起始下标。如果是负数,则该参数规定的是从字符串的尾部开始算起的位置。也就是说,-1 指字符串的最后一个字符,-2 指倒数第二个字符,以此类推。 end 紧接着要抽取的片段的结尾的下标。若未指定此参数,则要提取的子串包括 start 到原字符串结尾的字符串。如果该参数是负数,那么它规定的是从字符串的尾部开始算起的位置。

CSS3 Filter的十种特效

闲逛技术博客时看到了有关CSS3的Filter介绍,感觉很强大,虽然暂时的实用性可能并不大,但多多了解总是好的,说不定哪天就真的用到了,先看效果! 语法: 其默认值是none,他不具备继承性,其中filter-function一个具有以下值可选: grayscale灰度 sepia褐色(求专业指点翻译) saturate饱和度 hue-rotate色相旋转 invert反色 opacity透明度 brightness亮度 contrast对比度 blur模糊 drop-shadow阴影 浏览器的兼容性 目前支持这个属性的浏览器少得可怜,现在只是webkit支持,而且只有webkit nightly版本和Chrome 18.0.976以上以上版本才支持 参考:http://www.w3cplus.com/css3/ten-effects-with-css3-filter

base64图片在低端安卓机下会导致页面崩溃

最近有一个需求,在移动端允许用户上传图片,由于现在手机上照的相片动不动就1M+,有的甚至可以达到3M+,直接上传会有很明显的一个上传过程,于是就想到了使用先将图片转成base64,然后在用canvase进行下压缩处理,结果在安卓低端机下发现了上面的问题,页面直接崩溃了! 后面查了一些资料,总结如下: 1、部分浏览器对 data URI 的使用存在长度限制,长度超长,在一些应用下会导致内存溢出,程序崩溃; 2、对图片来说,在 gzip 压缩之后,base64 图片实际上比原图 gzip 压缩要大,体积增加大约为三分之一,所以使用的时候需要权衡。 需要兼容低端机的话,上面的方案就显得不是那么可行了,于是乖乖的直接传送图片,也省去了后台转码base64了。 这里若是您有其他方案,麻烦告知下,多谢了! 参考文章:http://www.cnblogs.com/hustskyking/p/data-uri.html

readmin快速指派给某个同事;

用readmin指派给某人时,有些时候很麻烦,所以准备简单的做点事,于是写了下面的代码,用法(在chrome),添加标签页,然后将对应的代码(是输入,还是直接指派给需求创建人)和标签页名字填进去,打开readmin页面时,直接点击对应标签页就可以了;

ios android 网络环境测试

在电脑上我们可以很方便的使用dig, ping, traceroute 等工具来测试网络环境。在手机上则没有这么方便,为了更好地进行网络排查。这里推荐几款工具来实现类似的功能。 iphone iNetTools 免费版可以实现ping, traceroute,dig功能。 Network Ping Lite 可以实现ping, traceroute功能。 Speedtest 可以查看你的出口ip, 以及对你的上传下载网速进行测试。 android android-tools免费版,可以在安卓手机上PING网站、PING IP,除了PING功能外,可以查询 Ping/DNS/Reverse DNS/Whois/Traceroute 等信息。 原文:http://kb.qiniu.com/iosandroid%E7%BD%91%E7%BB%9C%E7%8E%AF%E5%A2%83%E6%B5%8B%E8%AF%95

Fiddler (六) 最常用的快捷键

原文地址:http://www.cnblogs.com/mcho/p/3983066.html 使用QuickExec Fiddler2成了网页调试必备的工具,抓包看数据。Fiddler2自带命令行控制,并提供以下用法。 Fiddler的快捷命令框让你快速的输入脚本命令。 键盘快捷键 按ALT+Q课迅速将焦点定位到快捷命令框。若Fiddler不在活跃状态(后台运行),可按Ctrl+Alt+F先行激活Fiddler(切换至Fiddler面板) 在QuickExec框,按CTRL + I插入会话列表中当前选定的会话的URL 默认命令 ?sometext 当您键入一些字符串,如sometext ,Fiddler将突出会话所在的URL中包含sometext的请求 。此时按Enter键将高亮选中所有匹配的会话 1 ?searchtext 选择请求响应大小大于size字节的会话 1 >40000 //选择大小超过40kb的响应   <size 选择请求响应大小小于size字节的会话 1 <5k //选择小于5kb的响应   =status、  =method 选择响应状态=status 或请求方法=method的会话 1 2 =301 //选择301重定向响应 =POST //选择POST方式的请求 @host 选择会话中域名包含host的会话,此时按Enter键可高亮所有匹配的结果 1 @baidu.com //选择 www.baidu.com, map.baidu.com, 等等 bold 预先设置会话加粗:标记任何URL包含了目标字符串的后续请求 tip:再次输入bold取消设置 1 2 bold /index.php bold        //调用不带任何参数的命令来清除上一设置   bpafter 设置中断RequestURI中包含指定字符串的任何响应 tip:再次输入bpafter取消设置 1 2 bpafter /favicon.ico bpafter       //取消设置   bps 中断与设置的状态代码匹配的响应 1 2 bps 404 bps        //取消设置   bpv or bpm 对指定的HTTP方法创建请求断点。设置此命令将清除该命令的任何以前的值,不带参数调用它会禁用断点 1 2 bpv POST bpv        //取消设置   bpu 对包含指定字符串的URI创建请求断点。设置此命令将清除该命令的任何以前的值,不带参数调用它会禁用断点 1 2 bpu /index.php bpu        //取消设置   cls or clear 清空会话列表 1 cls   dump 打包所有会话成zip归档文件并转存在C:\ 1 dump   g or go 恢复所有设置断点的会话 1 g   help 打开帮助页面(即本文英文版) 1 help   hide 隐藏Fiddler界面,系统后台运行 1 hide   urlreplace 以一个不同的字符串替换URL中任何字符串。设置此命令将清除该命令的任何以前的值,不带参数调用它,将取消更换 1 2 urlreplace SeekStr ReplaceWithStr urlreplace        //取消设置   start 注册成为系统代理 1 start   stop 取消注册为系统代理 1 stop   show 将Fiddler从系统托盘中恢复,从ExecAction.exe获取更多有用的触发规则 1 show   select MIME 选择Content- Type头中包含指定字符串的响应,可用于选择文件格式等 1 2 3 select image select css select htm   select HeaderOrFlag PartialValue 选择已命名的header或SessionFlag包含指定字符串的响应 1 2 3 4 5 select ui-comments slow select ui-bold *     <– unless preceded by a slash, * 表示任意值 select ui-comments \*     <– Find comments with a * select @Request.Accept html     <– Find requests with Accept: html select @Response.Set-Cookie domain <- Find responses that Set-Cookie on a domain   allbut or keeponly 隐藏Content-Type头中除了包含指定字符串的所有会话,用于筛选 1 2 allbut html allbut java   quit 退出Fiddler 1 […]

windows的任务管理器变的和以前不一样了?

1、最近发现windows的任务管理器和以前不一样了,只有进程一栏的东西,上面的tab什么的都没有了……,网上查了下,原来window是管理器双击tab栏和内容栏之间(应用程序、进程、服务等下面的空白处)就会变成这个样子,再次双击内容栏上面的空白处,就会恢复原样! 2、电脑早就裸奔,不安装任何的电脑管家、卫士之类的,电脑启动项若是被一些恶意软件修改了,需要自己手动禁止掉,下面分享常用的一个方法: ctrl+r,输入msconfig,打开的里面有启动一栏,勾掉不想自启动的程序; 有关windows启动项可看下面这个文章:http://baike.baidu.com/view/2058724.htm

如何查看fiddler抓到的hex内容

1、红框中的内容已经就是人类可读的内容了,但是其中的中文可能会显示为乱码,如下图所示: 2、如果全部显示为乱码的话,你注意一下上方有没有黄色的条,提示你点击重新编码,如下图所示: 3、若是其他地方弄到的二进制文件,也可以试下Sublime Text的Hex Viewer,安装sublime插件的方式可以参考文章:http://www.duanzhihe.com/817.html   参考文章:https://segmentfault.com/q/1010000000684949

Fiddler (四) 实现手机的抓包

原文:http://www.cnblogs.com/TankXiao/p/3063871.html 截获智能手机发出的HTTP包有什么用? 用处一: 手机软件程序员利用Fiddler,可以截获手机发出的HTTP包, 从而调试程序 用处二: 软件测试人员用于测试智能手机上的软件。 用处三: 可以用来在App应用商店中刷排名 用处四: 截获了HTTP/HTTPS后,你想干什么就干什么,比如修改Request,或者Response. 配置Fiddler, 允许”远程连接” 打开Fiddler, Tools-> Fiddler Options 。 (配置完后记得要重启Fiddler). 选中”Decrpt HTTPS traffic”, Fiddler就可以截获HTTPS请求 选中”Allow remote computers to connect”. 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来 获取Fiddler所在机器的IP地址 这个简单吧。   我Fidder所在的机器地址是: 192.168.1.104 IPhone上安装Fiddler证书 这一步是为了让Fiddler能捕获HTTPS请求。 如果你只需要截获HTTP请求, 可以忽略这一步 1. 首先要知道Fiddler所在的机器的IP地址: 假如我安装了Fiddler的机器的IP地址是:192.168.1.104 2. 打开IPhone 的Safari, 访问  http://192.168.1.104:8888, 点”FiddlerRoot certificate” 然后安装证书 IPhone上配置Fiddler为代理 打开IPhone,  找到你的网络连接, 打开HTTP代理, 输入Fiddler所在机器的IP地址(比如:192.168.1.104) 以及Fiddler的端口号8888 大功告成,开始抓包 现在IPhone上的应用(比如Safari, Firefox, Itunes, App Store)发出的HTTP/HTTPS都可以被Fiddler获取。 实例: 打开Safari, 1. 输入http://www.cnblogs.com/tankxiao.  看看Fiddler能否捕获。 2.  输入https://dynamic.12306.cn/otsweb/   看看Fiddler能否捕获。 是不是HTTP和HTTPS都截获到了????,  你不但能截获, 还可以下断点,修改Request, 修改Response, Do what you want.  只能捕获HTTP,而不能捕获HTTPS的解决办法 有时候会发现, Fiddler 只能捕获IPhone发出得HTTP请求, 而不能捕获HTTPS请求, 原因可能是证书没有安装好。 解决办法是: 1. 先把IPhone上所有的Fiddler证书删除 (拿出IPhone, 点”设置“->“通用”->”描述文件”) 2. 安装上面的方法,重新安装Fiddler证书

前端招聘需求

本司的前端招聘需求,时间2015-11-30 招聘需求:一个经验丰富的前端技术经理,1到2个能力不错的做事的; 下面是招聘需求,仅供参考! 职位:前端技术经理 工作内容: 1、负责前端项目的架构设计及开发工作(侧重有手机端); 2、基于HTML5.0标准进行页面制作,编写可复用的组件; 3、持续的优化前端体验和页面响应速度,并保证兼容性和执行效率; 4、 根据产品设计,为多终端提供技术解决方案; 5、配合后台工程师一起研讨技术实现方案,进行应用及系统整合。 任职要求: 1、3年以上web前端开发工作经验; 2、扎实的CSS、JS、HTML基础,最好对浏览器渲染、性能优化有一定的了解,熟知主流浏览器的兼容性问题点; 3、丰富的项目经验、有前端代码组织、代码发布整合的相关经验,对当前成熟的前端构建工具(fis、glup、grunt等)有所了解,有所使用; 4、良好的独立分析、解决问题能力和团队合作能力; 5、对web移动端调试工具(包括抓包分析工具)有一定了解,有所使用; 6、有强烈地责任心; 7、对后台语言有一定了解; 招聘:前端开发 工作内容: 1、业务页面的开发,主要在微信公众号以及移动端的页面开发(包含交互); 2、优化现有页面,解决主流设备和浏览器兼容性问题; 3、适当可做一些尝试、创新性的工作,如炫酷的运营需求页面; 任职要求: 1、1年以上web前端开发工作经验; 2、扎实的CSS、JS、HTML基础,有移动端开发经验,有学习、独立分析和解决问题的能力; 3、对web移动端调试工具(包括抓包分析工具)有一定了解,有所使用; 4、有强烈地责任心和团队合作精神; 5、对后台语言有一定了解,能够快速、正确的理解产品需求,与后台开发人员很好的沟通交流;

微信内location.href自动跳转失效

这个问题四个月前就遇到了,今天才算有一个结论: 为什么有时候自动跳转失效,有时候存在问题,有时没有问题,第一想法这种问题八成是执行时机的问题,但和什么执行时机冲突了呢?最后发现原来是和微信jssdk注册事件冲突了,就是当js和微信app通信注册事件这段期间,若是执行location.href就直接被干掉了(代码走了,但没有真正的去执行跳转页面)……如何处理呢?尽量避开事件注册(jssdk的wx.config)这段时间,比如可以加一个setTimeout延迟来执行跳转,或者是按需来注册微信的事件(我们公司是在公用的js文件里面写的,所以这点做不到了!) 备注:以上的结论是本人根据打点调试出来的猜测结果(1、wx.ready若是在跳转的函数前执行,就可以完成跳转,之后的话就不可以;2、不加注册事件,堆叠页面,让页面加载慢,js可以直接跳转),不一定完全准确,若是有错误,欢迎指正!

javascript中return的作用

javascript 中的return一直用的都比较火,关于javascript中的return作用大家了解吗,下面通过本文给大家详细介绍,具体内容如下所示: return 语句从当前函数退出,并从那个函数返回一个值。 语法: 可选项 expression 参数是要从函数返回的值。如果省略,则该函数不返回值。 用 return 语句来终止一个函数的执行,并返回 expression 的值。如果 expression 被省略,或在函数内没有 return 语句被执行,则把值 undefined 赋给调用当前函数的表达式。 下面示例说明了 return 语句的用法: return 表示从被调函数返回到主调函数继续执行,返回时可附带一个返回值,由return后面的参数指定。return通常是必要的,因为函数调用的时候计算结果通常是通过返回值带出的。 javascript中return的作用 这里面的return含有一些细节知识: 例如:onClick=’return add_onclick()’与 onClick=’add_onclick()’的区别 JAVASCRIPT在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。 而该值决定了当前操作是否继续。 当返回的是true时,将继续操作。 当返回是false时,将中断操作。 而直接执行时(不用return)。将不会对window.event.returnvalue进行设置 所以会默认地继续执行操作 详细说明如下: 例如: 如果函数 add_onclick() 返回 true, 那么 页面就会打开 abc.htm 否则, (返回 false), 那么页面不会跳转到 abc.htm, 只会执行你的 add_onclick() 函数里的内容. (add_onclick函数中控制页面转到abc.htm除外) 不管 add_onclick() 返回什么值, 都会在执行完 add_onclick 后打开页面 abc.htm 另外补充: onclick事件时就相当于onclick=”return true/false” 例: 调用方法返回true时才提交表单,反之则不提交,这是submit按钮 —————————————————————————————— 调用js函数不需要return,但是表单却无法提交,所以在js函数中加上一句话 例: 注:document.myform.submit();要在return true前 转自:http://www.bkjia.com/Javascript/1068863.html

jquery的each函数结束循环

今天写了一个函数,需要each判断符合条件后就停止遍历,在写的时候很习惯的用了return,但发现根本没有达到效果! 于是去官网看了看,发现了下面的列子: 将return改成return false就可以了!

Chrome 控制台新玩法-console显示图片以及为文字加样式

有兴趣的同学可以文章最后的代码复制贴到控制台玩玩。 Go for Code 在正常模式下,一般只能向console 控制台输出简单的文字信息。但为了把信息输出得更优雅更便于阅读,除了cosole.log()方法外还可以调用 cosole.warn() 来输出警告信息,在控制台中出来的效果如下: 在输出信息前面会有一个带感叹号的黄色三角警告符号。似乎比一般的console信息要友好得多了。虽然图标是黄色的,但输出的文字仍然是黑色。 另外经常用到的是输出错误信息。可以通过调用console.erro() 来实现。 输出的效果如下:   信息前面会出现一个带叉的红色圆形图标。 这个效果要比警告信息更友好了,字体颜色成红色了。 要更牛叉莫过于对文字应用样式。而现在这一特性已经在谷歌浏览器里实现了。 在Chrome的开发者工具里,console 可以加样式,可以显示缤纷的颜色,甚至图片。简直爽翻了。 具体来说,是可以对输出到console控制台的文字进行CSS控制。 格式如下: console.log(“%c需要输出的信息 “, “css 代码”); 信息前面会出现一个带叉的红色圆形图标。 这个效果要比警告信息更友好了,字体颜色成红色了。 要更牛叉莫过于对文字应用样式。而现在这一特性已经在谷歌浏览器里实现了。 在Chrome的开发者工具里,console 可以加样式,可以显示缤纷的颜色,甚至图片。简直爽翻了。 具体来说,是可以对输出到console控制台的文字进行CSS控制。 格式如下: console.log(“%c需要输出的信息 “, “css 代码”); 下面是console.log() API的官方文档摘要。 谷歌开发者中心上面关于谷歌浏览器控制台console.log()的文档: 下面是示例:

近期小记20151126

1、如何判断一个数字是否为0; 由于0的形式可以是0,也可以使0.00,也可以是0.0,所以直接用字符串判断不可行,于是想到将其转换成整数和0对比,结果发现0.02也被转成了0,显然不符合预期了……除了parseInt,还有一个parseFloat方法,用parseFloat后的和0对比下就可以了,代码如下: 若是对上面代码不放心,还有一种处理思路,就是用原值减去parseInt后值,判断是否等于0; 2、如何clone下来github的代码,首先配置下ssh的key,可参考文章:http://riny.net/2014/git-ssh-key/ 备注:指鹤按照文章中的配置验证是否配置成功时,并未提示成功,但已经可以用了; 配置完成后,就可以直接clone代码到本地了,可参考文章:https://gist.github.com/suziewong/4378619 简介: 1、fork你想要看的项目,fork之后,你的个人仓库就多了这个库; 2、从github上下载代码到本地,你需要执行如下命令: 3、git clone https://github.com/suziewong/osteach.github.com.git 后面的地址,就是项目右侧的SSH clone URL内的地址;

作为程序员的两点感悟

作为程序员的几点感触! 1、如何让程序员更高效的工作? 让程序员只做他们该做的,帮他们做好其他的所有事!说的通俗一点,一个需求下达到程序员手上时,需求已经是一个近乎完成的闭环逻辑(近乎完成的意思是需求细节真的很难被全部想到),程序员要做的只是需要将他们实现,减少他们工作上的返工,减少程序员之间不必要的协调沟通! 发现程序员相互协调出现不顺畅的地方,及时进行协调,因为开发很多时候都是自己盯着自己的摊子,尤其是任务繁重时! 2、产品如何做需求? 最重要的一点,不要不切实际!做的需求要在现有条件可以实现的基础之上,不要看其他人有什么功能了,我们也要跟上!也许,他人做的的确比我们好,但我们技术水平有限也是短期内的现实!犹如,我觉得谷歌眼睛很好,但这个真不是我们想做就能够做出来的! 做东西前要考虑清楚,我们做的东西能够带给我们的是什么?我们为此要付出的成本是什么(时间和人力成本,当今互联网人力成本绝对不低)!若是发现需求需要付出的成本过于巨大,可以考虑换一种折中的方案解决,比如覆盖的范围小一点,细节问题处理容忍不完善等等,若是砍掉不是核心的需求,砍掉的却是最重的工作量,产品还未到追求完美的地步,不妨考虑砍掉! 有一个问题是“你要花盆还是花瓶?” 双十一天猫有一个领取优惠券的页面,名字记不清楚了,大意是一个小船在页面随着水道漂,两岸是各种打折信息! 作为一个前端开发,我觉得这是一个费力不讨好的事!至少我没有发现这样做有什么特别的用途(也许我层次不够),在我看来他还不如折扣网的列表形式更简单直观,也许他们设计的目的就是不直观,让用户在上面多停留时间,若是这样的话,也许达到了一些目的! 作为一个前端开发,我不清楚淘宝前端开发那个功能用了多久,若是我来做的话时间绝对在一周以上,若是一个简单的列表页,光写样式的话半天轻轻松松搞定了! 淘宝前端的薪资肯定都不低,两种效果的实现成本差距有多大不用多说了,尤其是花费在这种近乎一次性的页面! 要花瓶还是要花盆?我觉得是前端设计以及产品需要考量的一个问题,也许是本身是前端开发的原因,我觉得除了用在吸引眼球的地方,否则业务上选择简单清晰的花盆更实用! 有一个很好的例子,我一直觉得58的页面不好看,但他的用户数还是比赶集多,因为绝大部分人看重的还是功能,哪里提供给了他能满足他需求的功能,他就用那个,而且一旦用上手了,很多人也就一直用下去了,不会再主动去接触其他同类产品了!

慢跑鞋入门知识,以及慢跑鞋选择指引

转自:http://bbs.hupu.com/6286301.html 之前在跑步区发了一次,在这再发一下   小弟从07年开始接触跑鞋。当时刚开始练习跑步,跑了一阵之后脚疼的不行,严重的时候跑完脚连动都动不了,于是去医院检查了一下。发现虽然没什么大毛病,但是我的脚是平足+较重的overpronation,如果要跑步必须穿特定类型的鞋子。这就成了我接触跑鞋的契机。 这些年光是各类跑鞋就买入了不下20双,有一开始买鞋不会买交的“学费”,也有后来为了体验不同的缓震类型而入手的鞋款。林林总总学到了不少东西。发这个帖子,就是为了让新入门想选择合适跑鞋的朋友对跑鞋有一个比较清楚的认识,少走一些冤枉路少交一点学费。   通常我们买跑鞋,一般指的是慢跑鞋。慢跑鞋的设计理念是保护为主,让你在跑步时身体不受到伤害,而并不是为了追求速度。人在走/跑的时候,脚在落地时会有一个旋转的动作(pronation),这个动作加上足弓的下陷就成了人体的脚部缓震系统。慢跑鞋的保护就是对这个缓震系统的一个加强与矫正。   大部分慢跑鞋分了三类:缓震(cushion),稳定(stability),步态控制(motion control),这个分类就是根据人的pronation的程度来分的(而不是足弓的高低,平足者一样可以有完全正常的pronation)。Pronation分了三类:underpronation(pronation不足),neutral(正常),overpronation(pronation过度)。缓震系针对的是underpronation与neutral,而稳定系与控制系针对的是不同程度的overpronation。   这里有两张解析pronation的图片   图片以一个后跟跑者的左脚落地动作为例 underpronation跑者,以外侧着地,同时从外侧离地 normal(neutral)以外侧着地,同时以中掌离地 而overpronation跑者以外侧着地,从内侧离地 这张图就是有不同程度pronation的人站立时的图片   大家应该也听过慢跑鞋有不同等级的划分,有人用“入门级,实用级,顶级,超顶级”来形容,而也有人用“轻量级(minimum),中量级(moderate),重量级(maximum)”这类的专业名词。但总的来说他们说的都是一个东西:跑鞋根据不同缓震强度来划分的等级。缓震强度越高,能承受的体重也就越大,但相对的一般来说鞋也就越重。有很多人说“轻体重踩不动顶级鞋”其实是一个误区,顶级鞋的吸震能力更高,但不代表顶级鞋肯定就比中级鞋更硬。举个例子:在几大跑鞋厂家里,Brooks在这点上体现的最明显,Brooks的稳定系顶级款Trance要明显比他们的稳定系实用级款Adrenaline GTS要软很多,不管什么体重踩上去都是这种感觉,这是不同的设计理念导致的差距:GTS追求的是跑步时的回弹,而Trance追求的是顶级的保护与舒适度。尽管如此,根据自己的体重选择适合自己的鞋而不是盲目追求顶级款还是很重要的。   总结一下,跑鞋根据体重等级和pronation类型各分了三类,组成了一个九宫格。而想要知道自己处于这个九宫格的什么位置,可以去美津浓的网站上做一个测试,根据这个测试的结果来选择自己的慢跑鞋对新手来说是非常稳妥的了。 美津浓测试地址:www.myprecisionfit.com 有不少朋友反应说不会看这个九宫格,做完测试也看不懂,其实非常简单 这样的话,看起来就直观多了吧?左边的坐标轴是代表了对pronation的支撑强度,越往下越强 知道自己适合的跑鞋类型之后,按照自己的体重与倾向来从moderate/maximum级别中选择即可   接下来,我对各大品牌的公路慢跑鞋做了一个大体总结,参考了runningwarehouse的资料。其中不包括越野跑竞速跑赤足跑等等等等,只有最基本的普通慢跑鞋,给刚入门的新手当一个参考,型号可能有不全。 首先是常见品牌的概述: Asics与Brooks:跑鞋领域的代表,产品线最齐全 New Balance与Saucony:前些年很好,最近下滑严重,但依然保证了一线大厂的水平 Nike与Adidas:面对年轻人的时尚“跑鞋”居多,但是专业产品也有很高水准 Mizuno:实用系,坚持结构缓震   然后是具体的产品型号,依照pronation分类以及产品定价来排序:   Asics:特点是鞋楦非常适合亚洲人,当家技术Gel吸震能力极强,脚感极其出色,也因此有不少鞋款“只有吸,没有回弹”,但总的来说,Asics是最舒适的选择。 缓震系 Gel Kinsei系列:200美元级别,Maximum级,脚感软。稍微偏离普通慢跑鞋的定义。 Gel Nimbus系列:145美元级别,Maximum级,脚感软。 Gel Cumulus系列:115美元级别,Moderate级,脚感较软。 Gel Oracle:110美元级别,为了平足neutral跑者设计,Maximum级,脚感较软。 Gel Flux:100美元级别,Moderate级,脚感较软。   稳定系 Gel Kayano系列:150美元级别,Asics跑鞋的象征,以前被吹的没边了的“跑王”,为了中至重度overpronation跑者设计,Maximum级,脚感软。 GT 2000系列:120美元级别,相当于以前的Gel 21X0系列,为了轻至中度overpronation跑者设计,Moderate级,脚感较软。 GT 1000系列:100美元级别,相当于以前的Gel 11X0系列,为了轻至中度overpronation跑者设计,Moderate级,脚感较软。   控制系 Gel Forte:110美元级别,为了平足并有严重overpronation跑者设计,Maximum级,脚感较软。   Brooks:国内比较难购买,相比Asics来说更偏向纯跑步的跑友,鞋款普遍包裹能力强,当家技术DNA兼顾吸震与回弹,产品普遍内侧支撑强,是做控制系跑鞋最专业的厂家。 缓震系 Glycerin系列:150美元级别,Maximum级,脚感软。 Ghost系列:110美元级别,Moderate级,脚感较软。 Defyance系列,110美元级别,这个系列是Brooks稳定系的Adrenaline GTS的一个缓震系版本,除了中底没有内侧额外支撑之外一切都是一样的。Moderate级,脚感较硬。 Dyad系列,110美元级别,为了平足neutral跑者设计,Moderate级,脚感较软。 Launch:90美元级别,可兼职竞速鞋,Moderate级,脚感较软,轻量设计。   稳定系 Trance系列:150美元级别,为了中至重度overpronation跑者设计,Maximum级,脚感软。 Adrenaline GTS系列:110美元级别,为了中至重度overpronation跑者设计,Moderate级,脚感较硬。 Ravenna系列:110美元级别,为了轻至中度overpronation跑者设计,Moderate级,脚感较软。   控制系 Beast系列:140美元级别,为了平足并有严重overpronation跑者设计,Maximum级,脚感较软。 Addiction系列:110美元级别,为了平足并有较重overpronation跑者设计,Moderate级,脚感较软。   New Balance:每隔几年都换一次当家技术,现在的最新技术是N2近地缓冲,吸震能力非常好,脚感不输于asics,同asics一样在鞋楦上有优势。 缓震系 1080系列:135美元级别,Maximum级,脚感软,轻量设计。 840系列:115美元级别,Moderate级,脚感较软。   稳定系 1260系列:145美元级别,为了中至重度overpronation跑者设计,Maximum级,脚感软。 940系列:120美元级别,为了中至重度overpronation跑者设计,Maximum级,脚感较软。 870系列:110美元级别,为了轻至中度overpronation跑者设计,Moderate级,脚感较软,轻量设计。   控制系 1340:135美元级别,为了平足并有严重overpronation跑者设计,Maximum级,脚感软。   Saucony:国内一样不好买,当家技术powergrid兼具吸震与回弹,产品脚感普遍偏软。 缓震系 Cortana系列:150美元级别,Maximum级,脚感较软,轻量设计。 Triumph系列:130美元级别,Maximum级,脚感非常软。 Echelon系列,120美元级别,为了平足neutral跑者设计,Moderate级,脚感较软。 Ride系列:110美元级别,Moderate级,脚感软。   稳定系 Hurricane系列:140美元级别,为了中至重度overpronation跑者设计,Maximum级,脚感软。 Omni系列:120美元级别,为了中至重度overpronation跑者设计,Moderate级,脚感较软。 Guide系列:110美元级别,为了轻至中度overpronation跑者设计,Moderate级,脚感较软。   控制系 Stabil CS系列:130美元级别,为了平足并有较重overpronation跑者设计,Maximum级,脚感软。   Nike:气垫系产品回弹极强,lunar系回弹稍弱但吸震更好,产品普遍偏软并且内侧支撑较差。 缓震系 Air Max+系列:180美元级别,Maximum级,脚感较软,不太能算是跑鞋。 Flyknit Lunar1+:160美元级别,Moderate级,脚感软,轻量设计。 Zoom Vomero+系列:130美元级别,Maximum级,脚感非常软。 Air Pegasus+系列:100美元级别,Moderate级,脚感软。   稳定系 LunarEclipse+系列:135美元级别,为了轻至中度overpronation跑者设计,Maximum级,脚感软。 Zoom Structure+系列:110美元级别,为了轻至中度overpronation跑者设计,Moderate级,脚感较软。 LunarGlide+系列:110美元级别,为了轻度overpronation跑者设计,Moderate级,脚感软。   Adidas:阿迪的科技介绍都很多,总的来说传统鞋款里的formotion提供了额外的步态控制,而boost材料在吸震和回弹上都表现极为出色。新的Boost系列有取代Supernova系列旗舰的势头,Ride和Salvation系列生死不明。 缓震系 Energy Boost:150美元级别,Maximum级,脚感软,轻量设计。 Supernova Glide系列:115美元级别,Moderate级,脚感较软。   稳定系 adistar Boost:170美元级别,为了轻至中度overpronation跑者设计,Maximum级,脚感软,轻量设计。 Supernova Sequence系列:120美元级别,为了轻至中度overpronation跑者设计,Moderate级,脚感较软。   Mizuno:唯一一个还在坚持结构缓震的厂家,产品普遍脚感较硬同时缺少内侧支撑能力,和Brooks一样包裹性强,更适合纯跑友。 缓震系 Wave Prophecy系列:200美元级别,Maximum级,脚感较硬。稍微偏离普通慢跑鞋的定义。 Wave Creation系列:150美元级别,Maximum级,脚感较软。 Wave Enigma系列:135美元级别,Maximum级,脚感较软。 Wave Rider系列:115美元级别,Moderate级,脚感较软。   稳定系 Nirvara系列生死不明,先不放这 Wave Inspire系列:115美元级别,为了轻至中度overpronation跑者设计,Moderate级,脚感较软。   控制系 Wave Alchemy系列:115美元级别,为了中至重度overpronation跑者设计,Moderate级,脚感较软。被各大网站归到稳定系类,支撑比起别的控制系实在是不够。   只起个给新手当入门参考的作用,高手路过笑笑就好

SVN中Branch的创建与合并

在使用源代码版本控制工具时,最佳实践是一直保持一个主干版本。但是为了应付实际开发中的各种情况,适时的开辟一些分支也是很有必要的。比如在持续开发新功能的同时,需要发布一个新版本,那么就需要从开发主干中建立一个用于发布的分支,在分支上进行bug fix,维护版本的稳定,并适时的将一些改动合并回主干。目前大红大紫的源代码版本控制工具git很受大家推崇,原因之一就是其在这方面的功能相当强大。其实老牌的SVN也是有这样的功能的,接下来就给大家讲解下。 Branch的创建 在SVN中主干代码一般是放置在Trunk目录下的,如果要新建Branch的话则放置在Branchs目录下。(注意这是一种约定,SVN并不强制你这样做)注意Branhs和Trunk目录要平级,不能有嵌套,要不会引起混乱。 创建一个Branch也相当简单,只需要一条命令即可。 这条命令是指给myproject这个repo创建一个名为releaseForAug的branch,使用-m来加入描述。 之后你就可以通过 svn checkout http://example.com/repos/myproject/branches/releaseForAug来迁出你的Branch源文件,在上面进行修改和提交了。 其实SVN并没有Branch的内部概念。我们只是创建了一个repo的副本,并自己赋予这个副本作为Branch的意义,所以这与git中的Branch有很大不同。 需要注意的是Branch和Trunk使用同一套版本号,也就是说无论在Branch还是Trunk的提交都会引起主版本号的增加。这是因为svn copy只支持同一个repository内的文件copy,并不支持跨repository的copy,所以新创建的Branch和Trunk都属于同一个repository。 合并 既然要创建分支也需要合并分支。基本的合并也是蛮简单的。 假设现在Branch上fix了一系列的bug,现在我们想把针对Branch的改变同步到Trunk上,那么应该怎么做那? 保证当前Branch分支是clean的,也就是说使用svn status看不到任何的本地修改。 命令行下切换到Trunk目录中,使用 svn merge http://example.com/repos/myproject/branches/releaseForAug 来将Branch分支上的改动merge回Trunk下。 如果出现merge冲突则进行解决,然后执行svn ci -m ‘description’来提交变动。 当然在merge你也可以指定Branch上那些版本变更可以合并到Trunk中。 示例中是将Branch的从版本150到当前版本的所有改动都合并到Trunk中。 你也可以将Trunk中的某些更新合并到Branch中,还是同样的方法。 查看当前Branch和Trunk的合并情况 可以使用svn mergeinfo来查看merge情况。 查看当前Branch中已经有那些改动已经被合并到Trunk中: 查看Branch中那些改动还未合并。