2016-04-07 Li Shuai
Tornado本身的设计目标是单线程异步非阻塞,要想很好的发挥它的性能最好使用异步IO,并且Tornado本身也提供了异步的AsyncHttpClient的实现,配合gen.coroutine和yield,可以让请求异步执行从而不阻塞当前线程,对于单线程服务器来说,阻塞(blocking)和同步的sleep这种会挂起线程的动作都是服务器的噩梦,因为只有一个线程,所以任何等待都会影响服务器对于其他请求的处理。 异步非阻塞对于第三方IO是http请求的情况还好,毕竟可以使用Tornado提供的异步实现,但是对于有些数据库的IO,则需要异步库的支持,比如针对MongoDB的Motor等。但是第三方异步库的质量也是参差不齐,在实际的工程中 继续阅读 »
2015-08-07 wansong
本文是基于Mac环境的配置, OSX自带的vim版本较低, 因此首先安装MacVim brew install macvim 安装好之后, 将以下配置添加到 ~/.bashrc 中 alias vim='/Application/MacVim.app/Content/MacOS/Vim' 继续阅读 »
2018-09-14 Piasy
我真正接触 WebRTC 的 ADM 是在做 iOS 混音的时候,iOS 的音频采集、播放之前没有做过,所以想着从 WebRTC 的音频采集播放代码里借鉴一下 AudioUnit 的使用,结果折腾了半天愣是没搞定,后来索性直接使用了 ADM,为混音项目草草地画上了句号。 继续阅读 »
2018-03-22 YongHao Hu
go
nginx 中, sites-available 是放所有vhosts的配置文件, 而sites-enable 则是放你想要开启能够被访问的 vhost 文件, 一般是建立一个sites-available 对应的文件的symlink(软链接). 这样子做的好处是, 想关闭此 vhost 的访问时, 可以删除软连接即可, 恢复时重新创建, 可以避免把文件移来移去或者作备份等. 继续阅读 »
2017-07-26 Piasy
在本系列第一篇中,我们分析了 WebRTC-Android 相机采集的实现,本文中我们将分析预览的实现。 有过一定相机开发经验的朋友可能会疑惑,预览还有什么好分析的,不是直接 camera.setPreviewDisplay 或者 camera.setPreviewTexture 就能在 SurfaceView/TextureView 上预览了吗?实际上预览还有更高级的玩法,尤其是需要加上图像处理功能(美颜、特效)时。WebRTC 使用了 OpenGL 进行渲染(预览),涉及下面三个问题: 继续阅读 »
2017-06-14 Jamling
在写本文之前,我还以为自己对android的bitmap很熟悉,直到自己亲手写代码实践,才发现自己错了很多年。真是汗颜啊! more Bitmap Config 首先,根据Android API 25的文档简要说明一下Android的Bitmap.Config以下4个选项 继续阅读 »
2017-05-21 Robert Zhang
关于最长上升子序列的O(N*logN)算法已经有不少文章表述,可惜大都不够“好”(甚至语焉不详):我认为“好”的算法描述不但应该清晰地说明计算步骤,更应该讲清思路——即,这个算法是怎样思考得出的。这种思考的过程和方式才是精华之处。我试图用我的理解对这个算法给出一个尽量“好”的推导和表述,使你我一样的普通人都可以理解它的思路。 继续阅读 »
2015-06-01 浩阳
content {:toc} 宣讲会&初试 现在想想也真是无心插柳的一次找实习。感觉不知不觉中自己真的进步了不少。 首先在我们机房的楼下看到了宣传海报,5.28 有一个联想服务的宣讲会,我看到有前端工程师的岗位,想试试自己的水平如何,就去听了宣讲会。 到了宣讲会现场,人不少,我坐在最后一排。开始就是一些介绍。包括 Future Leader 的介绍等。 继续阅读 »
2018-09-27 张炎泼
软件工程是个面包机 excerpt 我们平时印象中的面包机是这个样子的: 烤面包机属于加热电器。其功能是在面包片附近生成足够的热量,以便对面包进行烘烤 继续阅读 »
2017-09-25 Robert Zhang
C#和Java相似:它们都把程序编译成某种“字节码”,然后在某种“虚拟机”上执行该字节码。此外,它们的语法形式都深受C++影响。另外,它们还是相互竞争的关系。因此,把它们放在一起比较是有意义的。 继续阅读 »