给MacBook Pro更换SSD(固态硬盘)

SSD(固态硬盘)这2年发展比较快,已应用到了现实产品中,不再是试验产品了,而我的MacBook Pro是2010年中的,也感觉到了硬盘的吃力,所以打算把机械硬盘更换为SSD。

要更换SSD确实需要做不少准备,自己动手更换硬件,还是需要先学习一下,网上有不少给MacBook Pro更换SSD的文章,包括更换SSD的具体步骤,我搜到了一个视频,是由科技评论人@王自如TechMessager制作的,录制了更换SSD的详细步骤,是非常好的参照。

更换SSD还是需要一些工具的,十字螺丝刀家里就有,一个比较特殊的T6口螺丝刀需要购买,一次到家乐福购物,在下面的小摊上正好看到有这样的整套工具,25块就顺便买了一套,Mac OS Lion的安装盘也需要一个,参照网上教程,制作了一个U盘启动盘,同时老硬盘里的完整系统、软件还是需要能方便的恢复,所以做了Time Machine备份。

这些准备都做好,剩下一个关键问题就是买何种SSD,最开始我想买镁光M4的,后来看到一篇文章说苹果可能对新的MacBook Pro配置三星830系列的SSD,所以我的目标转向了三星830系的SSD,容量上,我现在的硬盘是500G,但500G的SSD实在太贵了,要将近5000块,够买个iPhone4S的了,而且我现在使用的硬盘容量也就在150G左右,所以还是买256G的SSD吧,多了不用也是浪费,昨天终于下手,在京东上定了一个,价格2199,在淘宝上有便宜的,但担心质量与真假,还是选择了京东,放心点。

具体说下三星830系的这款SSD,我买的型号是MZ-7PC256B/WW Basic Kit,是基本型的,还有其他型的,其实硬盘都一样,就是配件不同,比如针对台式机的有托架和线,这款SSD是7mm的,而原配的机械硬盘是9.5mm的,开始我也怀疑厚度不同,能不能安装,经过实践,我明确的告诉大家,7mm的SSD是没有问题的,还有我这款2010年中的MacBook Pro的硬盘接口是SATA 2的,而苹果配的这块日立的硬盘,竟然是SATA一代的,苹果有些不厚道啊,这款三星SSD是SATA 3的,能向下兼容,但只能跑SATA 2的速度了。

SSD到货,就动手安装了,参考视频教程,拆后盖,注意螺丝顺序,拆硬盘,换硬盘,装后盖,一切非常顺利,插上U盘启动盘,和Time Machine移动硬盘,启动时按option键,进入Mac OS安装界面,我选择从Time Machine恢复,恢复的时间很长,估计有2个多小时,完成之后启动,进入系统果然快了不少,继续优化,安装Trim Enabler工具,开启Trim支持,之后需要重启,重启后再看系统信息里Trim是否开启,我这里没有问题,Trim显示开启了,由于更换了硬盘和恢复了系统,所有mdWorker和mds的进程会持续占用CPU一段时间,主要是重建索引,至此MacBook Pro更换SSD完毕,用AJASystemTest工具测试硬盘读写速度,可达200M/秒,开机菊花基本在2圈半,打开程序的速度明显提高,SSD果真是利器啊。

 

星点传媒诚聘iOS开发工程师

星点传媒是我的创业公司,情况之前的Blog也有介绍,我们现在主要从事O2O业务,诚聘iOS开发工程师。

岗位职责:
负责基于公司iOS应用的技术设计和开发工作。
完成模块代码编写、单元测试、代码维护工作;
编写相关技术文档。

岗位要求:
1、学历不限,一年以上iOS平台开发经验;
2、熟练掌握Objective-C,Xcode等相关技术;
3、熟练掌握iOS SDK中基础、图像2D、网络、位置等相关技术开发及应用,以及常用的iOS程序开发和调试方法和技巧;
4、熟悉TCP/IP和无线通讯协议,熟悉XML、JSON等数据交换格式;
5、良好的规范编程习惯和开发文档编写能力;
6、具备较强的学习能力和沟通能力,具备较好的团队合作能力;
7、有责任感,工作态度严谨,能够承担高强度、高压力的工作;
8、有App store上线应用者优先。

有兴趣的朋友,简历请发至 job@starrymedia.com

解决iOS开发中zxing在release下不能正常工作的问题

zxing是一个开源类库,用于解析条码二维码(1D/2D),实现语言为Java,但其中也提供了Objective-C的一个包,Objective-C的实现只能读取QRCode。

我们最近的一个iOS工程需要在手机上识别我们的二维码,所以我采用了zxing,按照zxing的文档将ZXingWidget工程导入自己的工程,过程比较顺利,在我的iPhone上调试也没什么问题,但当我打成AdHoc版交付测试时,测试发现程序不能识别二维码,我挺奇怪,就在网上搜索,在zxing的FAQ上确实有这个现象的解释

Why does my application decode okay in debug mode on iOS but not in release mode?

You’re compiling with an old version of llvm-gcc or clang. If you use Xcode 4.2, either supported compiler should be fine with optimizations turned on. Older compilers, shipped with Xcode 4.1 and earlier, had an optimization bug in llvm that miscompiled ZXing. If you are using Xcode 4.1 or older, you should use gcc to compile ZXing, not llvm-gcc or clang.

意思应该是说可能使用了老版本的编译器,Xcode4.2之前都存在问题,但我的Xcode已经是4.3了,应该不存在问题,继续搜索其他资料,基本都是英文,但说的也不是很明白,应该是编译器的Optimization问题,后来我将项目引用的ZXingWidget工程的Optimization Level设为None,即-O0,再打AdHoc就没问题了。

具体为选择ZXingWidget工程的Targets中选择Build Setting,将Optimization Level设为None,即下面的Debug和Release都设为None。

关于星点无线1.8.1

星点无线已经升级到1.8.1版本了,其功能也转变成以O2O为主,消费者使用星点无线客户端直接购买商品或服务,获得二维码凭证,到商家门店出示二维码,通过我们给商家提供的二维码扫描设备验证,即可获取商品或享受服务。

星点无线现在同时发布iPhone和Android版本,1.8.1的UI有了很大的改变,由原来的蓝色系改为了橙色系,功能上增加了游客浏览、离线电子票,集章卡的展现也有了很大的改进。

iPhone版App Store地址 http://itunes.apple.com/cn/app/id448294946?mt=8
Android版安装文件 http://www.xingdian.com/downloads/starrymobile.apk

 

 

 

 

游上海月湖雕塑公园

4月30日,趁着5.1假期,我带着老婆孩子和老妈,去了一趟上海月湖雕塑公园,上海月湖雕塑公园位于上海松江区佘山国家旅游度假区林荫新路1158号,同一区域的还设有著名的“欢乐谷”,我们星点网独家在线销售月湖公园的门票,所以我也是为了体验一下我们网站的整个电子票服务。

首先在星点网购买月湖雕塑公园的门票(或是使用星点无线购买),我们网上成人票的价格是80元,而如果到公园售票处购买,则要120元,所以还是很合算的,购买成功后,可以将电子票打印出来,也可以直接用手机上的星点无线应用,到公园入口处出示电子票的二维码,入口处服务人员会使用我们星点网的二维码验证设备验证电子票的有效性,验证通过后即可入园了,验证过程快的,我们入园时也没有遇到任何障碍,我们这套验证体系还是让用户满意的。

月湖雕塑公园的特色是雕塑,公园里有多个有特色的雕塑,富有美感,公园中央是很大一片湖,月湖就是指此湖吧,整个公园分为春岸、夏岸、秋岸、冬岸,对于小孩子来说,最感兴趣的还是夏岸,这里有一大片沙滩,小孩子们可以挖沙子,同时还有多个儿童游乐设置,特别是那个“跳跳云”,让大人小孩玩的不亦乐乎,在夏岸附近,有个烧烤区,我们中午就是在这里烧烤,收费为4人一桌一个炉子,60元,不限时间,如果要加碳的话,每包碳20元,还是比较实惠。

总的来说,月湖雕塑公园公园风景优美,非常适合带着孩子亲子游,小孩能玩的东西比较多,还能烧烤,天再热一些的时候去就更美了:)

沙滩

沙滩

跳跳云

这就是跳跳云,耗资6500万日元由日本进口全世界最先进的环保高弹性材料制作而成。

创业之2011年总结

现在已是2012年的1月底了,似乎现在写2011年的总结有些晚,但还是写一下吧,也算一个心灵备忘录。

2011年我仍然在创业路上,相比2010年,11年确实有了不少的进步,首先表现在团队方面,在去年的上半年,我都还在为团队头疼,主要是人力缺乏,招不到人,同时已有成员能力不足,详细可见我之前的一篇文章《创业之用人之困》,到后半年,经过不断的大浪淘沙,研发团队的骨干力量终于开始形成了,出现了几个优秀的可以挑起大梁的人物,剩下的年轻工程师虽然经验有限,但在态度上和责任心上表现的不错,也非常上进,愿意学习,我终于可以把手中的一些事情交给他们去做了。

产品方面,我们除了已有的星点调查,在2011年,推出了社会化网络营销平台–“星点网”和移动互联网应用–“星点无线iPhone版”,“星点网”还在不断深入,“星点无线”也即将推出Android版本,总体来说,产品布局在2011年已经形成。

个人技能上来说,主要的提高是掌握iOS开发技术,已经独立的开发公司的iOS应用,并在App Store上架了2款应用,分别是“星点无线”和“星点调查 for iPad”,Java方面没有过多的研究,似乎新的框架和技术出来的也比较少。PHP一直在用,我们使用的框架也比较固定,不会生疏。一直很想对NoSQL有更深入的研究,比如我们已经在使用的MongoDB,和现在非常热门的Redis,由于平时太忙,没有做更多的测试。在系统架构方面,现在表现尚可,但也想做更多的测试,以验证当前架构的稳定性,特别是将来会遇到的大访问量情况的应对策略。

一年中,时刻感受着创业的各种压力,应对各种之前没有遇到过的问题,创业确实是对人最大承受力的考验,我的最大感受是,不是每个人都能创业,在不能创业的大多数来说,能成为人才的人也很少,优秀的人才都是大家求之不得的。

在2012年中,我仍然要着力做的事情是团队建设,只有团队真正起来了,我们创业的目标才能实现,同时要专注、专注、专注,沉下心来把各个产品做好,真正的满足用户的需求,在无线和O2O领域有所建树,同时在运营方面也多参与,找到突破点。总的来说,还是要建设优秀的企业文化,我们公司已经成立快2年时间了,只有优秀的文化才是我们真正前进的动力。

支付宝无线商户接入遇到的问题总结

最近我在为“星点无线”产品增加手机支付功能,支付当然首先想到的是支付宝,而且也在其他类似无线产品里看到集成支付宝应用。

首先在支付宝无线商户平台里签约,我们分别签了“手机网页支付”和“手机应用内支付”,所在行业的费率会有所不同,请根据实际情况选择,“手机网页支付”和“手机应用内支付”的费率也不同,“手机应用内支付”低一些。

最开始,我只想简单一点,在iOS应用里内嵌Web,采用手机网页支付,服务器端是用PHP,手机网页支付,采用MD5和RSA两种签名方式,MD5相对简单,但安全性不如RSA,我最开始测试MD5,而且之前在网站上集成支付宝,也没啥问题,开始是比较顺利的,到支付宝支付时,支付宝默认选择了短信支付方式(可能和我们签约的分类有关),也就是支付宝会通过手机短信发送一个验证码,然后回复验证码,支付宝再会发送一个短信,短信里包含一个URL,点击这个URL,会提示支付完成,然后转到我们网站的回调地址,我方程序完整成个订单,但支付宝提供的这个URL,有时候打开会报错误,而且也不是每次都错,非常的奇怪,更大的问题是在成功后回调我服务器程序时报签名不对,我仔细检查了配置,没有问题,只能一点点排错,最后发现支付宝提供的Demo包里alipay_function.php的para_filter方法有问题,这个方法会漏掉回传的out_trade_no参数,非常的奇怪,只有修改这个方法为

function para_filter($parameter) {
  $para = array();
  foreach ($parameter as $key=>$val) {
    if($key == "sign" || $key == "sign_type" || $val == "") {
      continue;
    } else {
      $para[$key] = $parameter[$key];
    }
  }
  return $para;
}

签名问题解决,但由于短信支付最后这个URL的诡异表现,我为此专门询问支付宝客户支持,得到的回答是他们也发现这个问题,但不知道是什么原因造成的,技术也解决不了,竟然也有支付宝解决不了的问题啊!

这个问题不能解决,确实对用户的体验不太好,我只能选择“手机应用内支付”,支付宝提供了iOS的集成代码,文档也算详尽,但iOS的签名采用RSA,所以在服务器端先要改为RSA的(RSA的alipay_function.php para_filter方法有同样的问题),生成公钥、私钥的方法在文档里比较清楚,就是注意上传商户公钥时一定要删除文件头“—–BEGIN PUBLIC KEY—–”与文件尾“—–END PUBLIC KEY—–”还有空格、换行,变成一行字符串并保存为TXT文件,商户私钥在PHP程序不需要转为PKCS8格式,而在其他语言里(比如Objective-C)需要转为PKCS8格式,并在iOS应用里设置plist文件中RSA private key变量时,要把PKCS8格式私钥的换行和头尾的“—–BEGIN PRIVATE KEY—–”与“—–END PRIVATE KEY—–”删除。

在iPhone真机调试过程中,跳到支付宝应用时报签名错误,我又仔细检查了好几遍,确定没什么问题,后来在支付宝的指导下先测试运行他们提供的Demo程序,没有问题,说明签名密钥没问题,肯定是要签名的数据有问题,我对比了一下发现AlixPayOrder中的productDescription不能为空,也就是传输数据中的body变量不能为空,终于完成了无线支付的集成。

支付宝提供的文档还算比较全面,但有些地方还是有些含糊,如果是iOS集成的话,先测试它提供的Demo程序,以确定密钥的正确性,仔细调试,记录Log,还是比较容易集成的。

面对乞讨儿童

我每天上下班往返于上海浦西浦东,乘坐地铁2号线,近期发现2号线上带小孩乞讨的非常多,基本上每周都会碰到。

之前偶尔也能碰到带小孩乞讨的,我基本选择沉默,也不给他们钱,但看到抱在怀里熟睡的孩子,看到他们露在外面的小手,我总会想哭,孩子们应该享受美好的童年,应该被爸爸妈妈呵护,但现在可能是被拐骗,变成了赚钱的工具,甚至是被犯罪集团控制。

我终于忍无可忍了,决定要采取行动,帮助解救这些孩子,首先我准备每看到这样的情况就用手机拍下来,在新浪微博上有一个@随手拍照解救乞讨儿童的微博,我把照片@给它,但是给我的回复基本是“请马上报警”,昨晚我乘坐2号线回家,在龙阳路上来一对男女,女的身上背着一个小孩,大概是个男孩,1-2岁的样子,开始乞讨,从我前面走过之后,我就拨了110,将情况告知警方,110说警察马上会到,更让我意外的是就在我报警之后,竟然又有2拨带小孩乞讨的上来,一个是女的,孩子抱在怀里,由于看到前一拨可能不远,坐了一站就下了,后来的一个也是女的,拉这一个小孩,大概3岁,一路地铁运行很正常,乞讨者在流动,最后我也不知道警察是否采取了行动。

根据我的观察,乞讨者多出现与晚上8点以后,地铁上人较少,可以走动,在上下班高峰时间很少碰到,由于地铁处于运动状态,人员流动性太大,对于报警后处置带来很大的难度,所以我很希望上海警方能针对此问题展开转向行动,解救被拐儿童,让宝贝回家。

根据法律规定,就算是自己亲生子女,带出来乞讨也是违法的,与这些非法犯罪活动做斗争,其实就是保护我们自己的孩子,但我也希望政府、执法者能真的负起责任,我们这个国家,如果连保护妇女儿童都保护不了,何谈幸福?何谈民生?

以下是我最近在地铁里拍到的带小孩乞讨的照片,由于是用手机拍的,所以比较模糊,而且有些没有拍到正面。

 

 

 

后面2天又碰到带小孩乞讨的,注意这个带红帽子的小孩,我就碰到了3次

  

最新进展,今天(2011-12-22)在微博上,上海警方对于轨道交通乞讨儿童的问题做出了回应

http://weibo.com/2493592183/xDceptVjv

我的评论是:

感谢@警民直通车-上海 @lamesaint 对于轨道交通内乞讨儿童问题的回应,但是能否用未成年人保护法来保障这些儿童的权益,普通市民对于这样的现象该如何提供帮助?

2012-12-23,新闻《沪警方整治轨交流浪乞讨 部分职业乞丐月入过万》

读乔布斯传

读完乔布斯传已经有一段时间了,从当时以沉重的心情读完最后一页到现在这段时间,我一直在思考,乔布斯是如何让苹果如此的成功?

这本传记是唯一一本乔布斯授权的传记,总体来看,比较清楚的描绘了乔布斯这个人,他从为人上来说绝对算不上高尚,甚至有些刻薄,但这并不是最重要的,我思考的是为什么他能够真正的改变世界。

机遇,如果没有他的合伙人沃兹,不可能有苹果的诞生,不可能有第一桶金,当然也是因为个人电脑的时代,特别是有了Apple II,可以让乔布斯在Macintosh上折腾,Macintosh有划时代的意义,但在商业上并不太成功。

挫折与基石,从某种意义上来说,乔布什出走苹果后的NeXT公司的NeXTSTEP系统,是现在Mac OS/iOS的基石,奠定了这10几年来的高速发展的基础,我在做iOS开发时,越来越感觉,这套体系,绝对不是一朝一夕能做出来的,确实是需要长时间的积累,正是苹果这么多年来的积累,才造就了现在iOS的辉煌。

人才,“你要么是天才,要么是笨蛋”,这是乔布斯看人的原则,也就是说没有中间层的人。在苹果,汇集了世界级的顶尖人才,使得创新、创想变成了现实。

至简,从简单到复杂容易,但由复杂到简单,而且是极其的简单,才是真正的难,乔布斯善于由繁到简,而且极其准确。

远见,乔布斯总能比别人多看到未来几年,能使其产品领导世界电子消费品的时尚潮流,这一点,是学不来的,只能说这种眼光与思维,是与生俱来的。

可以说,这个世界,在一段时间里很难再出现乔布斯一样的人物,中国有些人刻意模仿乔布斯,甚至提出要培养乔布斯式人才,这让人觉得非常可笑,乔布斯与苹果的成功,有偶然也有必然,只有伟大的创新才是前进的源泉。