Category Archives: C_杂记

解封Google Wallet

前段时间想在PlayStore上买个app,用信用卡怎么都不行,显示transaction被decline了。
于是让美国的一个朋友帮忙买了Gift Card,充值成功;然后买app的时候还是显示decline,怒了,能充钱但是不能购物?耍我呢这是!

跑到Google Play Help的页面里选”Android apps & games” -> “Payment issues”,可以Request a call或者Online chat,我选了online chat,出来一个(看时区大概是)小印,说明情况,那边回复说需要花一段时间check一下情况,几分钟之后回复说,问题应该出在Google那一边,已经提交给expert去处理,需要24~48小时等回复。好吧。。。

第二天收到邮件,说我的Wallet Account is placed on-hold,需要上传一些资料才行。
根据邮件,打开https://support.google.com/wallet/contact/account_verification,上传了护照的照片和帐单地址的证明(网银截了一部分图),继续等消息。

又过了一天,收到邮件,说我的帐户 is now fully active and ready for use

然后试着买app,果然好了。
看起来,找人工help最靠谱了。

Share

记一次email code question

Amazon.com在中国招人,如果简历pass了,最开始会有一次email code question,就是约定好时间,通过email把一个问题发过来,然后在一定的时间之内把东西实现好发回给amazon。

第一次做这个code question,感觉比在电话/skype里直接写code要好很多,至少完全是自己在写code,没有外界的干扰。

我收到的问题是,amazon定义了一个类以及它的接口和说明,要在一个小时之内实现这个类。主要是要定义好数据结构,其中大多数方法很简单,只有两个接口需要涉及到算法,也不算太难。最难的是需要在一个小时之内实现。。。

我的情况是:
一个小时的时候写好了除最后一个接口外的实现,最后一个函数已经想好怎么写了,但还没写完;
先发了个邮件把当前的工作发了过去,估计要被刷;不过既然已经写了,索性多花点时间把它做好——
一个小时10分钟的时候,最后那个函数也写完了,但是完全没有测过; 那就继续写UT吧——
一个小时40分钟的时候,写了几个基本的UT,至少能测到所有的函数,其间发现两个code的bug,修掉了。

也就是说,我花了100分钟的时间完成了amazon要求在60分钟之内实现好的东西。
p.s. amazon还要求在每个接口上document它的时间/空间复杂度,这个也没时间写,但是这个倒是不难。

总之,说明写code的速度还不够快;
但是,总觉得要在60分钟之内搞定它,也没太大意义,真的实现好一个类/接口,一般应该这么做吧:
实现功能;
写UT测试功能,保证功能正常(或者UT先写);
优化实现(比如说时间/空间复杂度)。
还是蛮花时间的。

Anyway,只是记录一下这次code question。

Share

用homeshick管理dotfiles

无论是Ubuntu还是Fedora还是其它Linux发行版,用户的配置文件尤其是.bashrc总是一件很重要的事情,这关乎到“用户体验”。为了在不同的电脑上有相同一致的“体验”,比如说公司和家里的电脑,伟大的程序猿们想出了不少解决方案,其中homeshick是个不错的东东。用了一阵感觉良好,总结一下。

原理
homeshick把配置文件集中放在一起(~/.homesick/repos/<repos>),并用git来管理/同步/更新。
在$HOME目录下用symbol link把实际的配置文件link过来,比如说像这样:

.bashrc -> /home/<user>/.homesick/repos/dotfiles/home/.bashrc
.gitconfig -> /home/<user>/.homesick/repos/dotfiles/home/.gitconfig

安装
首先,你得有git, 最好还有github帐号,这样方便维护你自己的dotfiles。
然后:

git clone git://github.com/andsens/homeshick.git $HOME/.homesick/repos/homeshick
printf '\nsource "$HOME/.homesick/repos/homeshick/homeshick.sh"' >> $HOME/.bashrc
. ~/.bashrc

安装完毕

使用
如果想从头开始用自己的配置文件,可以生成一份自己的repo,见下面的命令和注释

homeshick generate <dotfiles>  # 生成一个repository
homeshick track <dotfiles> .bashrc  # 生成一个symlink,并把.bashrc添加到repo里
homeshick track <dotfiles> .xxx  # 其它你想添加的dotfile
homeshick cd <dotfiles> # cd到repo的文件夹
git add home # 添加到git
git commit -m "Initial commit, add .bashrc" # commit
git remote add origin git@github.com/<gitname>/<dotfiles> # 添加到github
git push -u origin master   # Push到github
cd - # 返回

如果在另外一台机器上想使用刚才添加过的dotfile,(比如说家里的机器,或者新安装了系统)
首先,按上面的步骤安装homeshick
然后:

homeshick clone <gituser>/<dotfiles> # clone github上的repo, 并自动生成symlink

搞定!

其它
Check dotfiles有没有更新

homeshick refresh

在文件夹里的dotfiles,比如说vim vundle,一般在 .vim/bundle/vundle

homeshick cd <dotfiles>
git submodule add https://github.com/gmarik/vundle.git home/.vim/bundle/vundle
homeshick link

Q.E.D.

Notes
1) Homeshick github: https://github.com/andsens/homeshick
2) 小心不要commit敏感信息,比如密码/API key,等等。要是真不小心commit到github了,参考这篇文章: https://help.github.com/articles/remove-sensitive-data

Share

Bye Bye Moto

    随着Motorola Home部门正式被Arris收购,我也不再是moto员工了。作为一毕业就加入moto并一直干到现在的“老员工”,对于moto还是很有感情的。。。 所以,回顾一下我的moto生涯吧——
    05年大四开始找工作,拿到南摩的offer,很是开心——一方面是搞定了工作,另一方面,可以先开始intern,工资4k,其中1k交学校,剩下的都 归自己。当时每个月生活费也就几百,3k的纯收入真是笔巨款,而且住学校,吃住都很便宜,上下班还有班车,就停在学校边上的珠江路上,超级方便。
    06年毕业,本来可以带着intern的CoreId直接上班的,不过当时为了看世界杯,中间断了一段时间,结果入职时就换了CoreId,还损失了那几天的工资,后来觉得有点亏。
    那段时间主要在Terry的team里做Intel FDI文件系统,这是在Nor Flash上的一个私有文件系统,充分利用nor flash特性设计的文件系统。印象比较深刻的是当时有个老外帮忙用单片机做了一个专门用来做掉电测试的板子,随机地让手机开机、掉电,不停的循环,确保 文件系统不会坏。把一个文件系统做稳定之后还是小有成就感的。
    后来re-org,当时文件系统已经成熟了也不需要太多的维护,有机会转去做bootloader,想想有机会跟硬件、汇编打交道,蛮有意思的。
    moto的手机主要用TI和Qualcomm的芯片,当年还是TI很火的时候,TI很牛,也不给BSP,不过有之前的bootloader的base,换用新的芯片,也就是改些配置,把板子跑起来的事情,其实没有太大的挑战性。值得说的大概有两个事情。
      · 一个是在某个片子上只有32KiB的internal RAM,跑之前的code因为太大根本不行,只能想办法,改编译选项(-Os),找大的global变量,看看能不能缩减字库之类的,后来总算把最开始的 bootloader弄得足够小,然后去初始化DDR Ram,然后内存使用就豁然开朗了;
      · 另一个是关于flash速度的,当时用RSDLite烧机(现在俗称刷机)速度很慢,不但烧写慢,checksum也很慢,远远太不到flash的理论速 度。我正好之前做文件系统对flash很熟,知道怎么配置,怎么用burst read/write,改动一番后,flash的速度提高了很多。
    09年中的时候,上海的home部门在招人,当时正好想换个环境到上海去,就内部申请transfer了。内部电话面试一下,两边的老板同意就行了,这一点还挺人性化的,公司的HR也很专业,transfer的事情基本上都由HR搞好了。
    于是,在南摩工作了整3年之后(不包括intern的半年),我来到了上海摩托。
    这是个完全不一样的部门——
      不再是MobileDevice了,而是Home,专做机顶盒的软件;不再用Clearcase/ClearQuest了,而是用Bugzilla(不过 现在改用Jira了)/ SVN了;电脑变差了,没有免费饮料了,没有building了。。。 诸多变化,一开始还是挺不适应的。。。
    在这里,因为是scrum,做的事情很杂,经常几个月就换个方向做,于是,在上海摩托,做过这些东东:toi, bitband, viaccess, ekioh-webkit, dlna, dtcp,以及修过任何机顶盒会碰到的问题,hdmi啦,audio/video output啦,等等。
    做新的东西,是能学到不少东西,但很多时候项目就是在修bug,这个就很没意思了,在上海3年多,工作上更多的只是跟着项目走,真正深入地学到东西,很 少。有时候只能自己在业余的时候搞搞Android开发,玩玩自己的博客,翻翻墙,看看Twitter,看各种IT博客之类,收获倒是挺多。
    · 一方面,Linux玩多了,各种脚本,以及python,svn,git,玩得还都不错,也在Android市场上有两个评分都不错的app;
    · 另一方面,各种博客(以及StackOverflow!)看下来,真心能学到很多东西,并发编程、c/c++/java的某些细节,等等。佩服那些大牛小牛们,呵呵。Google Reader真是神器,可惜就要关了。
    这期间,经历了Moto的拆分,Google的收购,还始终算是moto的员工;经历了Twitter的崛起,饭否的成功、封杀与复活,新浪微博的ws, 微信的异军突起,从不怎么使用新技术新产品,到现在用着twitter, facebook, foursqure, ifttt, pocket, evernote, dropbox, amazon aws, godaddy, bitcoin等各种新玩意儿,算是积极的变化吧。
    然后,Arris的收购,然后,终于不再是moto人了。。。
    Bye Bye Moto
    —-
    谨以此文纪念在moto的岁月
    2013.05
Share

买平板小记…

    前段时间一直长草平板,正好Liu桑在米国,元旦前回来,可以帮忙带,于是可以出手了——

    本想买个Nexus 10,虽然太丑,但鉴于其强大的硬件配置和相对不错的价格,一直想买它。Google Play Store上的硬件不支持中国地区的购买,不过用个自己的翻墙代理,轻车熟路地点开购买的link,用个米国的地址当信用卡的帐单地址,可以顺利地用Google Checkout支付。然而看最终价格,由于Liu桑所在的不是免税的州,东西$399+运费近13刀+税22多刀(粗略记得的数目),一下子贵了200多rmb。觉着亏,不该给美帝交税的,况且Google你丫收13刀的运费,太黑了!不买!

    转而考虑Amazaon的Kindle Fire HD 8.9,更小巧的设备,但又不至于像Nexus7那样太小,感觉可能正合适,299刀的价格,也基本上对得起那个硬件。软件方面,没有Google的服务是个问题,但估计可以自己刷CM,或者也许可以另外装相应的服务,总之可以折腾着搞定,就它了。

    某天上午,点开KindleFireHD8.9的link,填好Liu桑的地址,下单付款,一切顺利,花了$299等收货。
    那天下午,“什么值得买”上看到说Kindle平板系列降价$50了了,我一看,丫还真是,上午的单子下完没几个小时(估计过了中午)amazon上就搞特价给了$50的优惠码,当时感觉那个亏啊。。。

    尝试取消之前的订单,但是系统说因为已经出货了,不能cancel,只能return。好吧,那就填个退货申请,理由写上因为价格变化而“描述不符”,可以原价退货,amazon还会安排UPS上门取货,挺方便的样子;(注意退货原因,要是选了错误的订单,是要被amazon扣掉几刀并且不免UPS上门取货的费用的,选描述不符就啥费用都没了)
    然后重新下单,以$249的价格买了同样的东东,等收货~

    几天后,Liu桑郁闷地说,UPS的小哥们天天上门来取货,但是货还没到,取啥呀。。。
    同时,amazon邮件说,order已经return成功了,refund会在2~3个工作日内退回到俺的信用卡——擦,东西还没退,钱先退了,受宠若惊啊!看来米国人做生意都靠诚信。要是在国内这么搞,估摸着n多东西会找不回来吧?

    再一天之后,发现钱已经顺利地退回到信用卡,Liu桑也已经收到两个货,并且退了一个,一切都很正常。
    嗯,感谢amazon,$249刀的8.9寸平板,算是值了。等Liu桑回国了~

    货还没到,上张图解解馋
kindle-fire-hd-89

Share