1. "Handlebars 的 rust 实现"

    本来一度感觉到用过 Clojure 之后很难对新语言产生兴趣了,还好遇到了 Rust 再次激活了这方面的生命力。今年的重点之一是学习 Rust 语言,方便自己能真正 touch bare metal。1月17号的 Rust 聚会上发现很多人都持有类似的想法。 C++ 之后鲜有这种语言,以至于之后成长起来的一代人都是在一个 VM 里编程,无论是 Java 还是 Python,最终都没有办法自己去管理内存,Rust 的出现给了大家一个机会。一个具备现代特性的系统编程语言,Zero runtime,可以运行在各种设备上。去年还给程序员杂志写了一篇 Rust 的文章,结果导致现在程序员杂志停刊了。

    扯远了,和当时学 Clojure 一样,这次的计划还是写一个正经的项目来促进学习。关于时机的选择,主要是 crates.io 仓库的发布基本上标志生态圈开始建立了,这个时候写东西就方便很多了。

    这次选的就是实现 Handlebars …

  2. "AVOS Cloud 实时通信服务架构:微服务和服务发现"

    “微服务” (Microservice) 是今年特别热的一个概念,Martin Fowler 的文章对微服务作了详细的介绍。简而言之,微服务鼓励用户把功能拆分以细粒度的服务接口暴露出来,并通过REST 服务或轻量级消息队列集成。在微服务架构里,一个业务的实现,可能由不同的功能单元组合而实现。

    在 AVOS Cloud,我们提供数据存储、统计、实时通信等不同功能的服务,在实现上,这些功能需要共用基础设施,有的服务本身也根据业务性质的不同拆分功能模块,我们目前就是以这种“微服务”架构思路来实现拆分。有句话说,if you cannot split, you cannot scale.

    以实时通信服务为例,根据功能角色的不同,我们有这样一些模块:

    • Push 服务:处理推送的订阅关系,触发推送
    • 长连接服务器:维持设备与服务的长连接
    • Router:应用层的 lookup,负责分配合适的长连接服务器给新设备
    • WatchDog:从多台长连接服务器收集运行和统计数据,对异常情况发起报警 …
  3. "在 Docker 中安装和使用 Rust nightly 版本"

    一直关注 Rust 语言,最近一下发现了两个 web 框架,IronNickel.rs。先不说这两个框架成熟度如何,一般情况下,一个语言有了 web 框架,算是一个里程碑,说明他离靠谱也不远了。这样我决定跟一下 nightly 版本(新框架都是跟 nightly),另外也能感受一下 Yehuda Katz 的构建工具 Cargo。ArchLinux 的仓库里已经有 0.11 版本,再用脚本安装必然会有冲突。于是想到了最近半年最火的 Docker,可以轻松的创建多个环境,正是一个非常好的场景。

    安装

    安装 Docker, Arch Linux 仓库里很早就有,非常方便:sudo pacman -S docker。完成之后启动他 …

  4. "Mapzei 和 观察者"

    写了两个 Android 应用一致没有在博客上提,那么就一起提一下吧。

    其一是3月份写的 Mapzei,是Roman Nurik的live wallpaper Muzei的扩展。 Roman Nurik 之前做过 Dash Clock,本身也是个开放架构,允许第三方增加扩展。 Mapzei是Muzei的扩展,每天取一张随机城市的地图作为桌面。用户可以配置地图的数据源:Google,OpenStreetMap或者Mapbox。

    另一个是观察者网客户端,看新闻用。应用本身倒没有什么,用了一些典型的开源库:

    • UniversalImageLoader
    • SuperListView
    • ButterKnife
    • Eventbus

    另外这个应用还发布在了小米商店.

« Page 3 / 79 »