Category Archives: News

通过TestFlightApp.com管理团队测试设备

最近团队正在尝试使用Test Flight来管理测试App和内部Demo的分发。使用Test Flight最大的好处就是可以让不越狱的iOS设备免费使用Test Flight的企业证书。

之前团队碰到过一个Android测试设备的管理问题:作为一个创业团队,没有财力购买多余的设备。虽然每个测试,研发以及销售、运营同事都有自己的设备,但是在很多情况下,这些设备作为测试设备临时征用的时候就碰到一些困难,无法完整统计每个人手里的设备型号。

在使用Test Flight的时候发现Test Flight不仅仅可以用来分发测试App,同时也收录了所有测试人员手中的设备情况。但是Test Flight没有提供直观的视图来让测试、开发或者管理员来统计所有的设备情况。

仔细琢磨了一下,花了点时间,写了个CasperJS的脚本,来登录Test Flight并且把所有的测试设备列表抓取回来。

源码:https://github.com/shootsoft/testflight-device

使用:

casperjs device.js –username=xxxx –password=yyyy >> device.csv

device.csv可以用Excel导入形成直观的表格

email,platform,hardware,os,udid
a@xxxcom,Android,Xiaomi MI 2SC (Phone),Android 4.1.1,
b@xxxcom,iOS,iPod Touch 4th Gen,iOS 6.1.2,3660axxxxx28986c9e96c6c822e7c7049
c@xxxcom,Android,Samsung GT-I9502 (Phone),Android 4.2.2,
c@xxxcom,Android,Huawei HUAWEI Y220-T10 (Phone),Android 2.3.5,
d@xxxcom,Android,Huawei HUAWEI U8825D (Phone),Android 4.0.4,
e@xxxcom,iOS,iPad 2 Wi-Fi,iOS 6.1.3,60301xxxxxxxxff4cab91db6325cc7
e@xxxcom,Android,Lenovo Lenovo A820e (Phone),Android 4.1.2,
f@xxxcom,Android,Htc Evo 3D GSM (Phone),Android 4.1.2,
f@xxxcom,iOS,iPhone 4 GSM,iOS 5.1.1,ae3b3fxxxxxxxxxx5c71aa5f6ff3d59c1f921
g@xxxcom,iOS,iPhone 4S,iOS 7.0.2,178215cxxxx36d0eb48e2b54bfe3c5077

导入Excel后

testflightapp-device-excel

2013 QCon Beijing 游记3

很快就到第三天了,上午也是相对比较固定的在Node.js相关的会场呆着,中途去听了一场新浪云平台的分享,不过感觉还不够深入,倒是Node.js方面,新浪的另外一位讲师分享了使用Node.js开发的MySQL的数据库中间件,通过这个中间件来管理MySQL集群,这个和新浪云那个一结合,大概如何做一个开放式的MySQL集群服务就有大致的思路了。

网易游戏的谢骋超分享的Node.js的polemo网游Server端框架非常有意思,Demo也比较完整,做移动应用&游戏的同学有福了。网易在国内开源社区方面也算是树立了一个标杆。想了解的可以迅速移步:http://pomelo.netease.com/index.html

下午四场都是集中式的专题演讲了,其中NASA的工程师Khawaja Shams明显的就是Amazon的“形象代言人”了,NASA去年的火星探测器后端的数据处理全部Hosting在Amazon的AWS上,非常的Cool~

Oracle的Java那个专题基本上很无趣,原因是Java 8的这些新特性已经讲的非常多了,连我这个不做Java的都听的耳朵快磨出老茧了,更别说那些专职Java的工程师们了。这个演讲直接导致我旁边的同学鼾声大起…

晚上本来大会行程已经Over,不过腾讯云单独加了个专场,就去听了听。腾讯真是一个非常低调务实的公司。我比较看好腾讯云在游戏行业的拓展。目前腾讯云官方的主要的几个Case也都是游戏方面的。

三天很快结束,真是意犹未尽~期待明年仍然有机会去参加新的QCon大会~

2013 QCon Beijing 游记2

QCon第二天位置比较固定了,上午一直听的都是UI和产品设计相关的专场,四场分享一个比一个精彩。百度的香超分享了很多移动App UI设计方面的经验;豆瓣的屈雪则分享了豆瓣FM从零开始,如何定义产品,如何分析产品需求,如何设计产品UI的前前后后和点点滴滴;Jing.fm分享者是一个很酷的中俄混血帅哥施凯文,如果套用昨天的道哥的标题(山寨微信…),Jing.fm则是《这一次,我们重新定义了音乐搜索》;来自eico的张伟所分享的有关设计的细节非常值得所有的产品经理和设计人员细细体会。
其中印象最深的还是Jing.fm,从音乐类型分类开始,到音乐乐器识别,最后再到歌曲的情感分析,Jing.fm团队做了深入的研究和大量的创新,真正将自然语言描述化的融入了音乐搜索当中。比如“德国带有钢琴演奏的轻音乐”,再比如“周杰伦的悲伤的歌”,或者是“我喜欢周杰伦,我失恋了,给我来首歌吧”。

下午前3场一直在《跨终端的Web》这个专题里猫着,其中来自腾讯的黄悦所分享的《响应式Web设计在跨终端广告创意中的应用》很合我胃口,只可惜腾讯内部的这些工具我们“只可远观而不可亵玩焉”。

最后一场去听了新蛋伍涛分享的《Solr与Cassandra二级缓存实践》,个人感觉前半部分分享的过于细节了,所以后面很多踩过的“坑”没法一一细说。其实在开源的项目上,这些“坑”有些时候反而是更重要的。原因是方案大致上确定了之后,翻翻代码,基本上都有思路,有些“坑”不可避免的要走一周,但是有些“坑”提前知道了,则会节省很多时间。

PPT都在InfoQ的微盘分享里了,就不一一贴出:http://vdisk.weibo.com/u/1746173800

 

2013 QCon Beijing 游记1

感谢国家,感谢@郑旭进 同学的努力争取,感谢老板@付增学 掏钱,让我等有机会与大人物们近距离接触,感受软件工业界的这一盛会。

第一次这么早出门上地铁,不过还好是从8号线起始站上,人也不是很多。很快赶到鸟巢。天气很不错,早上人不多,零星的有些旅游观光的人。另外没有杂七杂八的卖什么罗汉豆之类的小商贩,走在奥林匹克公园的广场上很是惬意。
国际会议中心比较好找,之前也来过一次,应该是09年的Google开发者大会。很快办理了入场手续后找了个离大屏幕近的地方就坐。上午的4场全部都是主题演讲,英文的还有同声传译(去的晚的同学就没有了…)。下面重点说说自己的感受吧。
第一场是Douglas,思维观念部分听的比较晕乎,不过编程风格部分倒是非常清晰。说实话,那个Javascript的例子确实也解决了很久以来积压在我心头的一个问题:为什么Vistual Studio针对Javascript的格式化一直默认保持K&R style风格(大括号的开始总是与上一行代码在同一行),而不是和C#一致的Allman style风格(大括号的开始总是独占一行)?
PS:各种风格参考 http://en.wikipedia.org/wiki/Indent_style
原因参考PPT:http://vdisk.weibo.com/s/yTOrU/1366857734

第二场是来自Github的运维工程师Jesse,重点介绍了Github中运维用的”协同办公”工具Chatbot和Hubot,这两个工具思路非常有意思:让OPs的运维过程也能协同起来。比如对于异地入职的新员工,由于无法像同一个Office的团队一样,无法真实观摩一次同事的部署过程,使用Chatbot就能很好的解决问题:我演示给你看,你自己回头也应该这么做。如果是同一个团队,这个“演示”毫不费力,但是对于异地的Office就无法很好的做到这一点了。
PPT下载:http://vdisk.weibo.com/s/yTyLo/1366856893

第三场是来自百度的林仕鼎,感觉比较厉害,但是这个架构设计与架构师的话题感觉有些抽象,回头写本书倒是可以看看。不过能够感受到一点,这个分享的确是从系统非常基础的层面开始准备和整理的,需要花些时间消化消化。
PPT下载:http://vdisk.weibo.com/s/yT-n-/1366862570

第四场是Kevlin Henney,《程序员应该知道的97件事》的作者,是个“实战派”人物,不但总结的精辟,还上了emacs和C++的现场编译演示的例子,不过演示系统缺又偏偏不给力…
PPT下载:http://vdisk.weibo.com/s/yUjup/1366864019
下午行程:二号厅的A->B->A->C
首先还是Github的Jesse,分享了Github背后用到的那些Open Source的基础架构。包括LVS,MySQL,Redis,Memcache,Git,Unicorn(Ruby的Http Server,Github大部分应用均是Ruby开发)…都非常常见。不常见的是Github的Private Respo可以通过SSH访问,Github自己实现了一个从SSH到Git协议转发的Proxy(不知道我理解的是否正确)
详情参考PPT:暂无

其次是Apache Camel DSL in Scala。选这个没什么特别的理由,只是不了解Apache Camel和DSL,想听一听。 先不说Scala,这个用Java的肯定都了解。Camel还是一个挺有意思的项目,用于路由规则和中介引擎。DSL对我也是一个比较陌生的概念,回来也好好补了补课(具体请参考:领域特定语言 http://baike.baidu.com/view/1616623.htm)
PPT分享:http://vdisk.weibo.com/s/yYtnx

除了@fenng小道消息道哥的黑板报也是我每天必看的微信帐户之一。以前只是大致看过安全宝的介绍,没有详细了解过,这次道哥不但详细介绍了重新定义的WAF(Web Application Firewall),还特别介绍了创业路上的各种坑,其中不乏中国特色的。另外以前公司每次有门户方面的需求,我的第一个反应都是能不能用Wordpress,DedeCMS之类的来实现,但是安全问题却又总是绕不过去:万一有漏洞怎么办?安全宝则给我们提供了一个很好的解决方案。
PPT分享:http://vdisk.weibo.com/s/yYpJ3

最后是七牛云存储的持续集成部署的分享。对于云存储这种较为底层的服务,代码的上线发布环节需要十分严谨,但在这样的情况下,每天还能做到几次到十几次的发布,还是很惊人的。不过堪称敏捷团队的典范。
PPT分享:http://vdisk.weibo.com/s/yYZ9x

 

发布SAE Storage批量上传工具[开源]

最近云计算如火如荼,于是也忍不住去尝了尝鲜。SAE(Sina App Engine)是新浪推出的云计算平台,直接用微博账号就能登录,绑定手机号以后就可以开始使用了,支持PHP/Java/Python。一个比较有特色的是应用程序商店,逛了一圈发现有Wordpress,于是动起了把本站迁移到SAE的念头。上网搜了一圈,发现这篇教程倒是很详细:

http://www.mobai.org/2011/09/30/wp2sae/

但是第一个评论就击退了念头:

看来wordpress的转入,确实很麻烦。尤其是图片的部分,5年,每年12个月,就要手动创建60的路径,然后每个路径再上传图片,这是很可怕的工作量了。。。唉。

难道没有好的办法了么?摸索了一番之后决定自己开发一个SAE Storage的批量上传工具。

原理很简单,搭建Wordpress之后,再通过SVN或者手动上传一个额外的PHP,这个PHP专门用于接收上传的文件,然后转存到Storage。路径与本地的或者原有路径保持一致即可。本地上传使用C#开发。源码托管在Github上:https://github.com/shootsoft/SAEMutipleUploads

SAE Storage批量上传工具的使用教程参考这里