我一直有个很幼稚的想法,做一个方案,办一场路演,拉到天使投资后辞职,边给自己开工资边创业。事实这条路非常狭窄,这年头谁都不傻,完全不成型的项目,又没有团队和大牛光环,是不会吸引投资者的眼球,一般草根只有拿出一些雏形后,才能让投资者有信心来投资。

所以,我想自己开发一款app,从零开始。

在研究了思路、方法、路径后,决定放弃 native app(原生开发),因为这条路要非常强的开发功底。和web app、hybrid app(基于网页开发)效率太底,没有扩展。使用 React Native技术来开发,这条路坡度比较平滑,而且是技术前延。

就算如此,这条路还是非常难,我给自已三个月时间,有前景就走下去,不行果断放弃。

 

 

真正让我下决心的是看到知乎上一个网友的话,“ReactNative学习成本其实非常低,小项目实际开发中和原生并没有太多关系,无非是打包、加插件的时候会用到一些Native知识。放心去学,遇到Native的问题再看,多做有创造力的事情。

思前想后,不如前进一步。

 

一、首先将五笔的优点(我的个人感受)

  • 快,口手同步
  • 快,脑手同步
  • 盲打
  • 生僻字简单录入

二、为什么五笔这样好,但没人愿意学呢?

  • 学习曲线陡峭
  • 字根、口决难记
  • 紧急时打不出字让人抓狂

三、五笔不能流行的原因

(1)拼音非常好好用,为什么要用五笔。这就像计算器和算盘让人来选,谁会选择学珠算。

(2)打字快有什么用?我们打字主要有三个目的,一是聊天,二是电脑操作(上网、搜索、录入个人资料等),三是工作需要。所以只要不是特殊工作需要,五笔的快对我们没多大用处。

(3)没有学习环境,我们为什么减肥、健身容易放弃,是因为我们没有共同坚持的朋友,不能从中找到快乐,只有体重称数字变少的时候才会稍微开心一下,但这种情况一两周都不出现时,就会心生沮丧。当时我学五笔时,全班同学一起上五笔课,那键盘噼里啪啦的声音,时不时交头接耳的问人什么如何拆字的声音,老师的责问和同学诅骂声不觉于耳。我们在问中学到知识,在答中得到满足。五笔学习完全是一分耕耘一分收获,看到别人打字快,只有一个原因下了功夫,这就必须佩服,这种成就感和快乐过程一个人学习是得不到的。

(4)五笔是什么,现在很多人都不知道。在手机、平板上完全没有五笔输入法。人都有先入为主映象,第一次用什么,以后就习惯一直用下去,拼音就越来越多。

(5)人时间越来越少,别说让人端端正正的坐在电脑前练两小时字,就是练两小时钢琴、小提琴,或是看书看电影都坐不住。而且人的注意力越来越分散,时不时就会有外界打扰,很难进入心流状态,这就更难投入到五笔的乐越中。我个人觉得五笔最大的乐趣是写文章,不论是写信、文档,还是现在写这篇博文,那种行云流水,手到拈来感觉是最美妙,可惜这种境界太高,一般人很难达到。

(6)遇到难拆的字真是很恼火。以前有个女孩在我身边,见我打五笔非常潇洒很是羡慕,我自然心生得瑟。她问我她的名字如何打(她的名字叫曹嫒嫒),结果我一个都打不出来,那个羞愧,那个无助,让我终身难忘。

 

 

四、学会五笔额外收益

现在我还常有许多生僻字不会拆解,比如“拜年”,“凹凸”、“鹅”。好在有五笔拼音混合输入法,不然我也必须放弃五笔。学会五笔有一些很有趣的事,我的拼音能力越来越少降,特别是前鼻音和后鼻音,N和L分不清楚。还有以前的诺基亚有数字键盘的手机,用笔划输入可以实现盲打,现在触摸屏不行,没有力反馈和易误输。最近遇到一个会打五笔的朋友,我特别开心,一问才知他是四川人,四川好多人都用五笔,因为他们的官方语音是四川话,不会拼音,哈哈哈,原来五笔还有这个的用处。

五笔,它成为我的生活技能,如同游泳、骑车、生火、爬树将陪伴终生,共同组建我的价值链和安全港湾。会不会五笔对人生没太大差别,但多一种技术就多一种可能性在身,当手上只有锤子时,看什么问题都是钉子。当我手上有一套工具时,我就可以做出家俱让我舒适生活,或是组建大船扬帆起航!

 

我对外包公司比较熟悉,甲方乙方都有做过,员工和管理都有尝试,基本上对外包流程比较熟悉,最近周围有个朋友要跳槽,原因是有家公司不继续使用外包,改为自主研究,这样员工的工资就跳过外包的剥削,提高了50%左右,这是非常大的诱惑,也是外包公司很大的危机,如果这个问题不能解决,稍大一点的企业自主研发软件与更迭,而小公司也没什么油水,外包公司处境就很尴尬。

除了这个问题,我再细数一下外包公司的问题:

  • 大公司自创研发,跳过外包,直接高薪从外包挖人;
  • 人在减少,中国的人口红利在下降,其它行业也在抢人,年青人都是独生子女不太能吃苦,社会机会更多。这就造成IT民工会越来越不够用,就像富士康在广东遇到的招人难问题;
  • 技术更新频率飞快,外包难更上脚步。外包想要追求效率,工厂流水线化操作,就要严格规范。如果想尝试用新技术,那一定会有各种各样的风险造成超时,对外包公司来说,时间就利润;另外,在给甲方做事,技术员只要把事做完即可,做多了不但没有奖励,做错了还要担责任,这就没有尝试新技术的动力。如果是自主研发,就要考虑到未来可能也是自己更新与维护,说不定三五年时间是自己在使用,或是自己持有公司股票等,各方面原因会影响项目向好的方向发展。
  • 不安全感和不平等(同工不同酬、甲方乙方地位等)。安全感是马斯洛的第二需求,公平与尊重是第三需求,所以当达到一定高度,对自己有要求的人,就不太愿意停留在外包公司的环境里。
  • 利润越来越薄。没有定价权、残酷竞争、用人成本上升、维护意识上升、社会机会多等。

解决方案:

  • 有自己的研发产品。外包公司最大的优势是人多,人多可以想很多,也可以做很多,在闲的时候多研究一些东西,在做别人项目时,多整理一些东西。慢慢的积累,形成连峰的山峰,成为不可逾越的企业护城河;
  • 用人工智能代替人,这个不展开说,这是个趋热。我相信大公司可以成立研发团队,但不会自己再开发人工智能,这种事必须交给龙头来做;
  • 甲乙双方是可以互换的,中国移动要做项目,自主研发不足,就请华为公司。那华为就是被外包的公司,就是乙方。华为再找下家,华为又成为甲方;
  • 做企业的NO.1,接上条,如果企业足够强大,如华为一样,那在做外包时就有话语权和定价权。那自然也解决了安全感和平等问题。

 

 

 

在线支付的用处越来越多,方式也越来越多,前几天有个朋友问如何给自己的网站添加支付功能,我把交流内容整理出来,方便大家查阅。

一、银行卡种类

  1. 借记卡,就是储值卡,先存钱再消费,不能透支;
  2. 信用卡(包括VISA和MasterCard),先消费后偿还,透支有上限。刷信用卡时银行要向商家收手续费,一般在0.3% ~ 0.7% 之间不等。(简单的说吃个饭100块,老板要交3~7毛钱给银行)

 

二、支付平台

这类平台有很多,比较大有银联、支付宝、微信、百度钱包、京东金融等,需要逐一去接入。一般需要的资料如下,只要齐全基本上都能申请下来,只是时间快慢,申请都是免费的。

支付平台申请资质:

  1. 法人身份证
  2. 营业执照
  3. 组织机构代码证
  4. 税务登记证
  5. 开户许可证
  6. ICP备案号

支付平台优点:

  1. 付款状态可查,每笔交易的时间、金额、付款人信息等都有记录,并和支付宝、微信联动
  2. 无人值守,付款完成之后,执行后面流程。比如虚拟物品购买,支付后可直接发下载链接地址和下载密码,不用人在电脑旁
  3. 安全,这里的安全有三方面,资金流向、网站安全、平台稳定
  4. 正规,可信赖

支付平台缺点:

  1. 开发成本高
  2. 要有正规公司(个体商户也可以)和已备案网站

 

三、扫码支付

扫码支付现在常用的就支付宝和微信,其实就是支付平台的简化版,个人也能方便申请。

扫码支付三种方式:

  1. 固定金额,比如一瓶可乐3元钱,在可乐瓶上贴一张二维码,直接扫码就付款,不用输入金额。
  2. 固定商户,比如吃饭买单,问好价格,扫码输入金额。
  3. 扫码收银,你只要亮出自己手机上的二维码,对方把价格算好后,扫你二维码后扣款。

扫码支付优点:

  1. 无开发成本;
  2. 个人可申请;
  3. 帖近用户支付习惯;(操作简单,付款环节少,跳出率低,容易产生冲动消费)
  4. 偷税漏税?

扫码支付缺点:

  1. 网站不能留下付款痕迹,对帐麻烦;(只能在支付宝、微信帐户中查)
  2. 扫码多用于小额支付;
  3. 安全性问题,如果网站中木马,二维码图片被替换,钱就到别人帐上;
  4. 网站显得不正规、不严谨。

 

 

四、如何选择:

我觉得有几个问题能确定下,就可以做出选择。(前4点是硬性条件)

  1. 有没有正规公司和网站,没有用扫码;
  2. 准备花多少钱,开发费10000元以下用扫码;
  3. 是否是实物,是否支持退款,是的用平台;
  4. 需不需要财务分析、统计,需要要用平台;
  5. 支付频率多少,多的用平台,少用扫码;
  6. 支付金额大小,大额用平台,小额用扫码;
  7. 是否是虚拟产品、服务,是用扫码;

 

五、支付平台要联带开发哪些功能

  1. 会员模块,只有登录才能记录支付信息。会员模块包括注册、登录、找回密码、修改密码、用户资料、角色权限等
  2. 支付模块,包括订单生成、确认订单信息、付款方式选择、付款结果等
  3. 订单管理,包括查看订单、退款、统计等
  4. 商城模块,包括购物车、评价、信用、产品分类、物流、高级搜索等

 

 

 

上次年会有个同事抽奖得到一个小米手环,我比较感兴趣去官网上查了查些参数功能,觉得价格不贵便入手了一款试试,现在使用18天,说说这段时间的感受。

 

小米手环的优缺点:

(1)小米手环2相对与小米手环1最大的提升,就是多了个屏幕,当然价格提高了100块。这个体验提升的投资是非常必要的,让手环有了手表的基本属性,也加入了交互的方式。还能看日期和星期,这点就超越了普通手表。

(2)步数、热量、心率测量,只能说能用,不能说好用,因为不够专业。步数只能计算全天走动步数,不能单独计算跑步、散步步数,热量也是同理,心率测量非常不准,同时测两次就会有很大的误差,这是BUG。久座提醒,没什么用,如果能改成番茄时间钟就好了,长按圆点开始计时,25分钟后震动提醒,或可在手机端设置提醒时间,作为魔兽世界打BOSS、洗衣机晾衣服提醒都不错。

(3)睡眠统计功能很有趣,能看到每天入睡、醒来时间和深睡时长,但只是看看,还没想到有什么具体作用。

(4)手机手环解锁没用过,我对手机设锁无法理解,使用起来只能给自己找麻烦,是为了防止另一半查岗,还是防止手机丢失信息泄露,可能对高端人士有用吧。从看官方照片来看,要两个手靠近才触发解锁,是不是有点不傻?

(5)来电震动功能不错,能防止漏接电话,很实用!

(6)防水功能也很不错,从外观看就比较“防水”,洗碗、洗头时都带着手环,洗发水、洗洁精粘上都没太大问题,洗澡时拿了下来,主要是防止水蒸气渗入。

(7)佩戴最大的感觉就是没感觉,除了打键盘稍微有点“磕碰”,结触皮肤的地方没有留汗留痕,表带柔软佩带舒适。

(8)我用的是小米手机,自带小米运动软件,对手环的应用对接无缝,用起来很方便,软件界面美观,操作方便。

(9)抬腕显示功能我不是很喜欢,第一在交流、思考时容易分神;第二费电;

(10)电池续航很不错,我没开抬腕显示、中度使用,使用17天后还剩下20%电量,非常省心。苹果手表最大的问题就是电池!

 


 

对比苹果手表的对比感受:

(1)价格方面,苹果手表是小米的20倍!所以对苹果手表的要求也要提高10倍以上才合理;

(2)苹果手表的app应用有很多,功能很花哨,但95%很不实用、不好用,学习成本高;

(3)佩带感受小米比苹果轻、舒适;

(4)打电话功能苹果手表做的很不错,但几百元的其它智能手表和手环也能实现的不错,所以不加分;

(5)运动记录和交互做苹果手表做的很好,各种定制、推送、统计,让运动变的有趣,这是无法超越的;

(6)消息提醒苹果做的很好,微信、QQ、邮件都可以定制,还有快捷回复,app通知也可以定制;

(7)导航和定位,苹果有但不好用,最大问题是不能脱离手机和速度慢、费电;

(8)防水、防摔不如小米手环,毕竟有液晶屏。小米手环一来是塑料包裹,二来就算摔坏也不心痛;

(9)苹果手表有siri功能,识别度一般,但学习成本比较高,我一般用来打电话、开导航、问天气;

(10)苹果手机最大的问题是电池,待机一天都不到,都不敢使用各种功能,生怕到了晚上黑屏,如果这点不撤底改变,苹果手表这条路会走死。我相信50%用户因为电池问题不用苹果手表,也我是如此;

 

整体来说在149元的价格前提下,小米手环拥有手表功能,并且防水待机时间长,有来电震动,还有一些步数、心率、热量、睡眠统计锦上添花,性价比很高,值得推荐。

我的小米手环是在淘宝闲鱼上买的二手,原价 149元,二手95元,运费10元。我心里没有使用障碍,也许用一段时间不喜欢了,再50元卖出去。我觉得电子产品主要是体验服务,不像手表、乐器、首饰、衣物等买新的有纪念、情怀、卫生、热爱等元素附加其中。

最近刚完成一个“复杂”的项目,其实项目本身不复杂,只是需求没有计划,跟着领导思路不停的变化,并且只给我们正常开发1/2~/1/5时间,使得技术人员疲惫不堪,现在开发基本完成,突然说因某重要领导使用IE6浏览器电脑,并且分辩率是 1024×768,要求我们对所有页面ie6支持,最变态的是只给不到一周时间。这个消息惊得我们措手不及,我明确表示一周时间完成不了,最多只能完成 60~80%或。然并卵!
即然事实已经摆在面前,挣扎无益,就开整吧。首先到哪里找IE6浏览器!
1、ieTeset 软件在现在的win10 64位电脑上,打开就崩溃(以前win7或xp时,是可以用的);
2、用IE自带的调试工具下的仿真模试,几台不同电脑展求效果各不相同;
3、只能用一台电脑装系统,或用虚拟机的方式。考虑到同时操作两台电脑不方便,最后确定使用虚拟机。
我尝试安装了 VMware 和  oracleVM 两款虚拟机,VMware 普及度比较广,资料文档教程比较多,oracleVM性能更优,速度目测快50%,推荐oracleVM。
然后就是装系统,第一次我装的是ghost版winxp sp3,装机后看到是IE8,无法降级,失败。难道IE6是 win98系统自带,第二次尝安装win98,看到熟悉的图面,自己都有点感动,不知不觉已过了20年,20年前的我在做什么?装好之后发现是IE5,再次失败。第三次我安装的是 winxp 安装版,成功。
oracleVM 虚拟机开源免费全中文,使用无难度,只需要注意“网络 – 连接方式”,我选择“网络地址转接(NAT)”,就可以共享上网。另外,在菜单项“设备”-“安装增强功能”,就可支持当前电脑与虚拟机之间复制粘帖和文件窗口拖动。
运行方法就比较简单,如果是 tomcat 运行java,只需在IE浏览器输自己电脑的IP、端口号、路径。如果是调试静态页面,点开始-运行菜单,输入 \\自己的主机IP,就可以访问自己的电脑(要开共享,不然看不到硬盘),直接运行HTML页面。
注意IE6是没有f12、firebug、开发者工具等,只能装一个 Debugbar,定位JS问题位置和报错提示,HTML和CSS问题,只能凭感觉。
对于IE6具体调试细节,这里就不展开介绍,只说一下思路:
1、如果明确需要完美支持IE6,那建议在IE6开发,向上做版本扩展;(基本低版本支持,高版本不会有问题)
2、如果是开发完成,需要追加支持IE6,建议用判断浏览器的补丁方式追加,不要动结构,做好注释,注意解耦;(具体判断方法见下文)
3、复杂位置,可以用表格来布局,不用太拘泥规范标准;
4、jquery 只支持 1.4以下版本;
5、不支持 css3、html5,最好不用滤镜 filter,会使页面假死、崩溃;
6、良好的代码写写规范,扎实的前端功底,能免去很多奇萌问题。
HTML 的 IE6判断方式:
<!–[if IE 6]>
    <link rel=”stylesheet” type=”text/css” href=”common/css/ie6.css”/>
<![endif]–>
CSS 的 IE6判断方式,用HACK解决
javascript 的 IE6判断方式:
var isIE=!!window.ActiveXObject;
var isIE6=isIE&&!window.XMLHttpRequest;
if (isIE6){
//代码
    }
jQuery 的 IE6判断方式:
if ($.browser.msie &&
($.browser.version == “6.0”) && !$.support.style) {
//代码
}
一些小问题:
1、border-bottom:1px solid #CCC 不起作用,但border:1px solid #CCC 起作用。 解决方案,追加一条_display:inline-block;
2、我一直以为 background-color有一条属性 none,实际上只有 transparent 透明(无),或 inherit (继承)属性,只有display 有 none 属性;
3、z-index 无效问题,最好的方法是直接调整代码先后顺序,或把浮动层停在页头或页尾,用JS定位;

4、png图片半透明解决方法,图片少用gif代替,图片多用DD_belatedPNG.js ;
5、清除浮动方式有多种,ie6 推荐用伪类方式。见下文:

 

伪类清除浮动方式:

.clearfix:before,.clearfix:after{display: table;content: ” “;}
.clearfix:after{clear: both;}

总结,IE6并不可怕只是繁琐,掌握了IE6的调试方法和思想,基本上其它浏览器都可以搞定,只是时间和工作量问题。前端技术对一个人的综合能力要求非常高,需要的不单是技术能力,更多是方法、心态、规代等综合能力。

在面向对象语言里,继承分为“接口继承” 和 “实现继承”,ECMAScript 只支持“实现继承”,“实现继承”主要依靠原型链实现。

原型链继承

》》 最常用,让原型对象指向另一个对象的实例

function A(){}
function B(){}​
B.prototype = new A()​

—————————————–

借用构造函数

》》 apply() 和 call() 又叫伪造对象或经典继承子类型构造函数的内部调用超类型构造函数

function(){
temp.call(this);
}

—————————————–

原型式继承

var anotherPerson = Object.create(person)

—————————————–

寄生式继承

》》 创建一个仅用于封装继承过程的函数,在函数内部增强对象

function(o){
​    var clone = object(o);
clone.sayHi = function(){};
return clone;
}

—————————————–

组合继承

》》因为各种方法都有优劣,以上方法可以自由组合

最近要做一个表格表头固定的功能,因为时间关系和整体质量考虑,这个功能被放弃。​闲来无事,让同事去练练手,没想到一天不到就搞定给我,让我惊奇不已。是技术突然的提高,还是简单的解决问题交差,答案果然是后者。我在仔细梳理代码后,给她提高比较高的要求​:

(1)多表格同屏支持(id不能唯一,事件要分离)

(2)多浏览器支持(IE8下面有很多代码不支持,比如 position:fixed等)

(3)支持动态加载后,表格不出现问题(考虑回调)

(4)表格内容过多时不会被撑坏​(考虑适应性与用户体验)

(5)样式与代码分离

(6)支持扩展(排序、搜索等)

做一件事容易,做好一件事不容易,我在交同事的时候,自己也试着写了一遍,花了三天时间才完成。(如果简单做只需半天的工作量)​

完成和优秀,就是60分和100分的关系,每提高一点,要花成倍的精力,工作如此,人生亦如此。​

最近在看JavaScript书,看的我晕头转向,特别是作用域、闭包等概念很难分辩。不过很庆幸搞清楚一件事,就是this的4种绑定方式,我把大段的文字描述做成一张表与大家分享:(博客不能插表格,我转化一下:A表示‘定义‘,B表示’绑定结果’,C表示‘举例’)

new绑定

A:在new中调用​

B:​新创建对象

C:var bar = new foo()

————————

显式绑定

A:通过call、apply或硬绑定调用

B:指定对象

C:var bar = foo.call(obj2)

​————————

隐式绑定

A:在某个上下文对象中调用

B:上下文对象

C:var bar = obj1.foo()

————————​

​​默认绑定

A:不属于以上三种绑定方式

B:全局对象(严格模式,绑定undefined)

C:var bar = foo()

近日公司进了位高人,此人工作十年有余,做过项目、接过兼职、开过微店、打过酱油,基本上IT编程一套思路都如数家珍,今天抽烟得闲,他给我总结出

前端技术学好的三句真言:1、盒子;2、定位;3、浮动
java技术学好的三条思想:1、封装;2、多态;3、继承
他总结的非常精准。那我也不能失弱吧,这里狗尾续貂
学好网页设计三个要点:1、图层;2、视点;3、平衡;
做好产品经理三条思路:1、全局;2、协调;3、敏捷;