Tech Builds

弦歌不辍,刚毅坚卓

使用Docker作为开发环境

"Docker入门"

何为Docker 虽然一直以来习惯于在文章开头简单介绍一下“是什么”这个问题,

图像的处理——Matrix

"Opencv源码阅读(1)"

打算开始一个关于计算机图像处理的系列,以OpenCV的源码为引,介绍计算机中处理图像的基本技术和模式识别的一些基本方法。这个系列主要的参考资料是Opencv的Reference、Source Code和一些公开的资料,我会尽量在每一篇的结尾或必要的位置注明。 OpenCV(OPEN source Computer Vision library)是一个计算机视觉库,可以帮助我们完成对图像的基...

未来将至

"the Road to the Future"

最近看到很多关于未来的预测,适逢2017年来临,便随手写写我对于未来的看法。权当随笔,想到哪里便写到哪里。既为预测,便难免有准与不准,若是准了,您可以下方大大方方点个赞,若是不准,您呵呵一笑,看过即可。 A.I 最近扎克伯格公布了他过去一年所做的Jarvis系统,引来的大家的一片欢呼。前又有Tesla的Auto-pilot,似乎人工智能即将要在未来的2017年如春风般进入大大小小各户人家...

2016年终总结

"An Exciting Year"

技术 2016年是动荡的一年。经历了很多神奇的事情之后,年尾终于慢慢稳定下来可以做想做的事。希望能用这样的方式来纪念这特别的一年。 在3月份左右决定实习,投了NVIDIA和深圳先进院的简历,最终去了比较自由的先进院做一些好玩的东西,同时也可以住在那边,非常方便。花了很大的力气从学校搬东西出来。 在实习的这段时间做的是和Spark相关的内容,主要是推荐系统的工程实践。由于一直以来写的都是...

为React Native定制雷达图

"在React Native中调用原生组件"

为什么 在React Native的编程中,我们难免遇到一些需要原生组件才能调起的行为,例如相机等。如果可以通过在原生组件和rn组件之间通信的方式来解决这个问题,一方面可以让react native的组件获得极大的丰富,另一方面也可以从某种程度上提高我们程序的性能。是一件有百利的事情。当然,它的编写会相对复杂。因此在实际使用时还是要慎重。 在我们最近的项目进展中,出现了要绘制一个雷达图的...

React-Redux--理论篇

"单向数据流设计"

何为Redux React是一种建立用户界面的框架,在React中,每一个UI元素被认为是一个“组件”,组件之间嵌套组合,就形成了一个组件树。数据在这个组件树中单向流动,即上层组件可以向下层组件传递数据,而下层组件不能向上层组件传递数据,兄弟组件之间也不能。但我们希望,数据能够自由地流通,这要怎么办呢?有几种方式都可以来实现: 上层组件向下层组件传递一个回调函数,下层组件调用回调函...

自己写一个PRISMA

"让两张图片融合起来"

大约2个月前的一天,一款叫做PRISMA的应用突然刷爆了朋友圈,后来还出现了叫做Ostagram之类的更丰富的应用,它可以让一张照片变成世界名画的风格。实话说,这款app突然火起来还是很让我惊讶的,因为之前也恰好看到了相关的论文,和一个开源的实现。而且在6月的《互联网编程》的课上还有一位同学实现了出来。今天,我们就来一起来实现一个高级版的PRISMA,不仅仅是世界名画,任意两幅图片,我们都能...

跟我一起来实现一个ORM

"Python元类"

最近在做Tech Builds的新闻页的时候,用到了很多爬虫方面的技术。虽说在爬虫方面已经有较为完善的Scrapy等框架可供调用,但是还是希望自己从头来完成一个这样的爬虫框架,在使用上希望尽可能简单。 恰好之前有个同学刚刚也在写一个爬虫,问到我怎么写模型比较好,那个时候我都是用SQLAlchemy来实现ORM的。这次也找机会自己实现一个,算是填上了当初数据库作业的坑。 我们要实现的大概是...

Icon Builder

"生成不同分辨率的Logo"

缘起 之前在做app的时候,遇到了一个算不上问题的问题,安卓和iOS往往有着截然不同的分辨率要求,与此同时,一些第三方平台也有着自己图标分辨率、大小上的要求。而现有的大多数工具又往往局限于单个平台的图标生成(很多都是收费的而且)。 因此,设计的同学就提出了这个需求,希望能有一个工具可以方便地生成各种大小的图标。从批处理的角度来看是比较容易的,PIL里可以通过resize来实现,因此就有了...

用gprof来进行性能测试

"善假于物也"

性能测试工具 最近在研究一些在Linux上的C/C++程序,目的是为一些现有的算法提速。主要是在做一些CV领域和压缩算法。 要想加速这些算法,首先要知道的是,这个程序每一步用了多少时间,在哪个函数上是瓶颈。那么gprof就是一个非常好用的工具了。gprof非常简单易用,值得一试。 gprof的使用过程主要有三步:编译、运行和查看(分析)。 编译 为了便于大家理解,我们首先编写一个程...