程序员如何转型人工智能(机器学习)

本文是为了准备IAS2017互联网架构峰会而作,我将主持本次大会中《如何转型为一个人工智能工程师?》圆桌论坛的讨论,欢迎大家围观。

我是一个工作时间比较久的全栈工程师,做过web开发,前端,后端,移动端,HTML5的开发。2016年底开始学习机器学习,做深度学习大概不到半年。目前在研究手机端侧人工智能。在人工智能技术方面我肯定没有研究人工智能很多年的人有经验,但在怎样转型人工智能方面我还是有些体会的。

Redex安卓Apk优化技术研究

ReDex 是 Facebook 开源的工具,通过对字节码进行优化,以减小 Android Apk 大小,同时提高 App 启动速度。
GitHub:ReDex github,官网主页:fbredex.com

本次研究完成了Redex在Ubuntu linux上的安装和配置,进行了Redex优化测试, 实验了Redex优化的主要流程, 包括Inderdex。

安卓源码项目进行gradle编译改造常见问题解决

最近把依赖安卓源码编译环境的多个项目切换到gradle编译环境,需要把一些项目改成lib库依赖,基本思路是把通用的代码和第三方jar放在一个utils库项目中, 其他子项目改为lib库,子项目统一依赖utils,主项目依赖9个子项目,解除子项目对主项目的依赖,最后gradle编译成一个apk。

我眼中的全栈工程师

现在越来越多的创业公司都想找全栈工程师,因此市场上就出现了很多伪全栈工程师,特别是学会了Node的前端工程师,前端工程师会Node就全栈了?这严重不符合我对全栈工程师的理解,这篇文章我主要是说下我对全栈工程师的个人看法。在我眼里,全栈工程师是下能玩硬件和驱动,上能写网页和js,中间能玩转服务器和数据库,没事还能自己做个安卓或iOS App, 对IT系统有着全面深刻的理解,熟悉所负责项目的整体技术栈。
我认为全栈工程师的特质应该有以下几个:强大的解决问题能力;广博的知识面,快速学习能力,不给自己设限,主动学习新技术;熟悉多种编程语言,熟悉整个系统从上到下的技术实现。

如何使用repo下载部分Android源码

最近打算重新折腾下Android源码,由于网速慢和Mac的SSD磁盘空间不太够的原因,打算只下载部分想研究的Android源码看看,但又想保留android源码本身的结构,因此不能直接clone github上的android源码项目。目前android 7.0源码完整下载估计在40G左右,如果翻墙下载网速比较慢,可能几天都下不好,也就不要折腾了。

在分析了.repo目录下面的文件之后,我找到一个简单的方法,可以只下载部分源码的git项目,现在安卓源码一共由500多个git项目组成,一个人想了解全部源码基本上是不可能的,只能研究下重要的或者是工作涉及的部分。

用Zepto代替Jquery提升移动Web用户体验

jQuery现在已经是Web开发者比较依赖的一个库.甚至在很多公司内部也把jQuery当成了一个基本库来使用.

但随着移动端的流行使用庞大的jQuery去支撑移动端的开发显得有些重量级了,于是就出现了一个轻量级兼容库Zepto.js.

Zepto是作为为了支持移动端的浏览器而开发的一个和jQuery API极度相似的一个库, 如果你会用jquery,那么你也会用zepto,这样就大大降低团队协作的成本,不用改变开发习惯也能迅速的进行移动端开发.

PyCon2016上海站参会感想

2016年9月10日早上5点多做高铁去上海参加PyCon2016大会,这是我第二次参加PyCon大会,上一次是2014年,我觉得这是一个比其它的技术大会有意思的大会。在拖了整整一个月后,今天终于抽时间把参会感想整理出来了。PyCon大会是Python语言社群全球性的盛会,PyConChina是由CPyUG(华蠎用户组)获得授权举办的中国PyCon年会。

本次大会的主题是Pythonic, C’est la vie! 法语:Pythonic,这就是生活!
这次大会很好的体现了这个主题,演讲的嘉宾来自不同的行业,而不仅仅是传统的软件和互联网行业。印象比较深刻的2场演讲是vn.py的作者介绍Python和vn.py在Quant量化投资领域中的运用,《基于Python的谷歌TensorFlow深度学习框架的介绍》,《用高魔的姿势调Python程序》。具体的日程和PPT在这里

根据大会一场演讲中互动环境的Python用户情况现场调查,现场只要不到30%的人专职做Python开发的,其它的参会者都是在工作部分用到或业余用到Python。这个应该和Python的适用场景有关, Python作为一个有20多年历史,有着特殊的缩进语法风格,历史上积累的大量第三方库,跨平台,开始时是作为脚本语言推广,现在已经发展成了通用编程语言,有着广泛的使用场景。我自己主要是在工作中的小项目上用Python,例如几个月前用Python做了Android和iOS App的持续集成系统,通过jenkins自动调用Python脚本生成App,H5下载网页和二维码,方便测试。另外,以前折腾树莓派也是Python,使用RPi.GPIO库控制硬件,写代码效率比用C语言高很多,适合折腾。后面有兴趣研究下TensorFlow深度学习框架。

还有一个演讲是介绍基于Python的ERP系统Odoo, 但我感觉ERP这种产品是企业的神经啊,需要贴合国情,而Odoo是主要是在欧洲使用的,不一定适合国内情况,虽然可以做扩展。基于Python对系统的维护也会带有一些问题,国内熟悉Python的人相对较少,并且也不一定愿意去做ERP,搞机器学习多高端啊。

总之,今年的PyCon2016大会上海站还是诚意满满的,分享的东西都比较有意思。

Cordova整合使用腾讯浏览服务X5内核

在对基于Cordova的Android混合App的性能优化过程中,遇到了很多在不同安卓版本手机上的Bug,很多都是安卓不同版本的系统webview的差异导致的,有可能是安卓系统的问题,也有可能是手机厂商修改webkit带来的问题,这些问题从前端技术层面是很难解决的,修改和测试成本都非常高。因此我想通过使用统一webkit内核的大招来解决,目前有2个方案可选,使用Crosswalk内核或腾讯浏览服务X5内核。本文主要研究Cordova整合使用腾讯浏览服务X5内核。