Category Archives: 技术

使用Homebrew时version命令失效的处理方法

By | 技术 | No Comments

QQ20150604-1@2x

今日因为部署开发环境的问题,涉及到要降级系统中的nodejs,从0.12的版本降级到0.10的版本。

根据牛哥的指导,可以通过修改gulp的配置文件,强制性的指向nodejs到旧版即可。可是实践后发现这个解决方法并不稳定。导致了只能考虑卸载nodejs的环境,然后重新安装较旧的版本。大家如果有其他的好方法欢迎讨论!

首先卸载nodejs

卸载的方法如下


sudo rm -rf /usr/local/{lib/node{,/.npm,_modules},bin,share/man}/{npm*,node*,man1/node*}

可以参见http://stackoverflow.com/questions/11177954/how-do-i-completely-uninstall-node-js-and-reinstall-from-beginning-mac-os-x

然后安装旧版的nodejs,坑多

在google中搜索,基本上解决方法都是

brew versions node

的方式来进行实现

当时实际的使用过程中,发现brew报错,如下

Error: Unknown command: versions

再次搜索解决方案,发现建议的解决方案如下:

brew tap homebrew/boneyard

但是执行的时候还是报错

You should use the homebrew-versions tap instead:
https://github.com/Homebrew/homebrew-versions

再次通过搜索发现homebrew在2015年3月份的时候更新了这个命令,所以针对要安装到低版本的情况的解决方法是:

到达brew的安装目录,一般是

cd /usr/local

clone Git上的库下来

brew tap homebrew/homebrew-versions

然后再进行

brew search node

看到输出是


homebrew/versions/node010 leafnode
homebrew/versions/node04 node
homebrew/versions/node06 nodebrew
homebrew/versions/node08 nodenv
...

然后执行

brew install node010

最后进行链接修复和overwrite

brew link --overwrite node010

ok,最后输入

node -v

见证奇迹的时刻吧

关于Apple Watch体验设计的一个细节

By | 产品, 技术, 设计 | No Comments

在设计Apple Watch体验的时候,比较重的交互是希望引导用户到手机上进行交互的。那么这个时候需要考虑,在Watch使用到不同页面的时候,在手机上如何打开你的App?以及在手机App上以什么样的条件进入到哪个页面?

在手机上如何打开你的App?

苹果提供了Handoff的方法,那么当用户打开手表上你的App中你想显示Handoff的页面时,如果点亮iPhone,那么在iPhone的左下角就会出现你的App图标,用户按住左下的图标上滑就可以打开你的App了。

QQ20150529-2@2x

但是当前这部分的体验有一个痛点,如果用户习惯使用Home键进行解锁且使用TouchID,那么就很难使用这个功能了,希望苹果可以在iOS9中修复这样的问题。但是如果iOS9把左侧变成了Homekit使用的位置就苦逼了。

如果用户按照Home键和TouchID躲过了刚才的流程,那么也可以通过共享文件机制,在app打开的时候通过共享文件查到用户是从手表上的哪个界面过来的,从而提示用户跳转到刚才操作的位置。不过这个操作流程比Handoff的打开流程比,就费劲一些了。

在手机App上以什么样的条件打开什么页面?

不是说handoff打开你的app就ok了,还需要精确定义手机页面和手表页面的关系。这个就case by case了

微信6.2在更新加入了对于handoff的支持,而且终于加入了对于通知(Long-Notification)的回复支持。我一直觉得支持回复比在手表上刷朋友圈靠谱多了。

换工作了

By | 产品, 技术, 生活, 设计 | No Comments

今日办理了离职手续,离开了时光网。这次离职是因为女友的事情而起,但最终却是因为职业生涯发展方向的变化而落地。随着和女友交往越来越深入,异地恋的问题也就愈发凸显。因为自己一直在北京的原因,女友的情绪也变的越来越糟糕。所以决定换一个可以有更多时间在上海陪女友的工作。在寻找新机会的过程中自己对于自己职业发展又进行了一次思考。

说在前面

这个观点其实伴随着我对于现在趋势的两点认知:

  • 因为工具越来越先进,掌握技能的时间大大缩短
  • 小公司是未来的方向,获取资源的成本在不停下降

反思自己职业发展规划的缺陷

按照之前自己职业生涯的规划,更多的是发展成为产品型或者管理型。但是在之前的职业发展中,基本都没考虑自己的两个爱好。也就是开发和设计。

作为产品型发展,充分利用了自己的两个优势,就是责任心和好奇心。自己对于自己的产品很负责,且对于自己不懂得东西比较好奇,经过时间的积累且运气较好的情况下,可以在产品设计和项目管理方面有比较好的成长。

但是这里忽略到了一个问题:投入产出比。当你长期持续在一个领域投入了过多的精力,那么的你的投入产出比是不停的增大的。花费相同的精力,但是产出会越来越小,也就会遇见我们通常所说的瓶颈。

所以当思考到这一点的时候,就会发现:

如果将自己的爱好开发和设计带入到自己的职业发展当中,也许可以创造更大的价值

直觉觉得这是一个比较靠谱的想法。于是在求职的过程中也进行了验证,果然市场是对于这样全栈定位的人是有刚需的。那么基本认定了,这是一个可以实践的想法。

继续完善

但是仅仅市场需要就够了吗?当然不是,做这种产品、设计、开发的全栈未来的发展有空间吗?在什么样的位置可做发挥最大的价值呢?带着这两个问题又进行了一波思考。

毫无疑问这样定义的全栈是初创企业所需要的,你能够一个人提供一个小团队的战斗力。但是这样的价值更多的适合从无到有,而不适合去做稍大规模和复杂度更高的事情。

那么当公司的规模扩大了以后,刚才说的这种全栈能够提供怎样的价值呢?我觉得主要有三方面:

  • 更容易了解对方的想法,进行管理会更得心应手
  • 思考全局会更为全面,做出的架构会更合理
  • 对于流程了解的更全面,可以提出更优化的流程,节约企业成本

当然,这样的定位也很适合去创业 XD

总结几句

总结一下,基本就是放弃过去只做产品的局限,在开发和设计投入更多的精力去学习实践。

 

关于ARC使用strong和weak的一个比喻

By | 技术 | No Comments

apple

图片来自苹果“忽悠”我的邮件

因为今天时间关系,没有办法整理完采访稿。因此用一篇之前学习和实践iOS开发的技术分享来代替。

首先什么是ARC ?ARC是iOS 5推出的新功能,全称叫 ARC(Automatic Reference Counting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。我觉得目的就是能够更为智能的管理内存。

在学习iOS开发的时候,声明对象的属性的时候一般都会使用strong, nonatomic作为关键词。学习的时候比较费解,不知道具体是指什么意思,于是就在网上进行了搜索,然后无意间发现了Stackflow上一个人对于strong,weak的比喻,恍然大悟。 Read More