2014-07-30 veryyoung
在实现一个功能,推荐好友注册。 大致意思是注册的时候带上手机号,后端验证下手机号,就ok了 对用户mobile进行页面间的传递,但又想把用户mobile进行加密后传递,这样更安全. 在这个过程中会出现一个问题,就是URL编码问题,如果不对URL进行编码直接加码,那么在解码时,如果字符串存在“+”这种特殊符号,在解码时会出它替换成“ ”,此时在解密就会无法解开,导致错误的结果。 解决方法: 加密后,进行URL编码,然后到另一页面后,进行URL解码,再解密 解决方法2: 先对字符进行URL编码,再加密,这时不会出现+号等字符,然后到另一页面后,再解密,然后再解码即可。 解决! 思路比较简单,就不贴代码了。 继续阅读 »
2017-06-12 MoreFreeze
vim
上一篇 CH13 Buffer-Local Abbreviations 这章就是说iabbrev也能用来修饰 你想记住某个新的snippet最好办法就是disable掉原来的命令,比如iabbrev return NOPENOPENOPE CH14 Autocommand Groups autocmd是不会替换原先的命令的,假如使用两次同样的命令,那触发autocmd时会进行两次命令 特别要注意在你source $MYVIMRC时,autocmd会再载入一次! 可以用augroup testgroup autocmd xxx augroup END,这时如果你运行下augroup testgroup autocmd yyy 继续阅读 »
2015-06-21 Eric Wang
Spring简介 Spring框架由Rod Johnson开发,Rod Johnson's twitter,Rod Johnson's 百度百科,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。 Spring总结起来优点如下 * 低侵入式设计,代码的污染极低 * 独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺 * Spring的IoC容器降低了业务对象替换的复杂性,提高了组件之间的解耦 * Spring的AOP支持允 继续阅读 »
2016-10-12 曹强
定义:定义一系列算法,把他们一个个封装起来,并且使他们可以相互替换。 需求:绩效为S的人年终奖有4倍工资,绩效为A的人年终奖有3倍工资,绩效为B的人年终奖有2倍工资。 var calculateBonus = function(performanceLevel, salary) { if (performanceLevel === 'S') { return salary * 4; } if (performanceLevel === 'A') { return salary * 3; } if (performanceLevel === 'B') { 继续阅读 »
2015-11-08 jude
git
TL;DR 对已发布到远程仓库的分支进行衍合操作(rebase),会产生重复的提交记录,本文举例描述这个问题。 git merge 与 git rebase 命令都用来合并代码,如果不需要审查提交记录,两者都可以无脑操作,相互替换;如果要生成有条理的提交记录,前者会记录多条开发分支扰乱视线,因而推荐使用后者。但后者要是使用不当,会生成令人糊涂的提交记录。这点官方文档里有描述,但我嫌它所举例子有点牵强,所以自己举例说明。 继续阅读 »
2014-10-16 Lingxian Kong
变量引用 用set命令可以查看所有的变量 unset var命令可以清除变量var,var相当于没有定义过 readonly var可以把var变为只读变量,定义之后不能对var进行任何更改。 对shell变量的引用方式很多,用这些方式可以方便的获取shell变量的值,变量值的长度,变量的一个字串,变量被部分替换后的值等等。shell变量常见引用方式如下: 继续阅读 »
2016-09-24 曹强
d3
事件 在d3入门系列文章中我们介绍过d3选择器,其中有提到选择器为交互添加或移除事件监听器的方法selection.on,除了选择器事件外,D3还提供了很多种事件机制,本节我们详细介绍下d3的事件机制 选择器事件 添加事件监听 跟jQuery类似的方法监听事件,传递参数为当前数据d和索引i; 如果所选择的元素相同类型的一个事件监听已经注册了,新的监听替换老的; selection.on('click',function(d,i){ …. }); 为相同事件类型注册多个监听器,该类型可以跟一个可选的命名空间,如“click.foo”和“click.bar”。 selection.on('click.foo',fu 继续阅读 »
2016-08-10 曹强
gulp的一个案例,主要是对gulpfile.js中的任务进行分割,完成清理、文件复制同时进行筛选压缩、以及html中js和css引用的替换等 more gulpfile.js ```javascript 'use strict'; var gulp = require('gulp'); var config = { pkg: require('./package.json'), publicDir: ['./{public,public/}'], resourcesDir: ['./{resources/,resources/}'], apps: ['ads', 'analysis', 'h 继续阅读 »
2016-11-29 Jamling
Android兼容库从24.2.0开始,对support-v4做了分库处理,原有的support-v4库拆分成为了support-compat、support-core-ui、support-fragment等库,本着稳定的原则,一直到25.0.0才开始在项目中升级support-v4库,将原有的support-v4替换为support-core-ui(其实,项目中只用到了ViewPager,SwipeRefreshLayout而已)以减少apk体积。然而问题来了,编译时出错,提示存在重复的类库。为保证support库版本一致,我还统一定义并使用了各模块的support版本变量,使用gradle dependencies查看依赖的时 继续阅读 »
2016-08-12 Jamling
简介 首先上个图 {% asset_img preference.png %} Preference控件的目的在于替换Android自带的Preference,在[QuickAF]中,Preference被设计为控件,可以在layout/Activity中随意使用,不必像自带的Preference,需要配合res/xml/xxx_preference、PreferenceFragment/PreferenceActivity使用。 继续阅读 »