Feb 16 2015
Extempore: A Real-time Programming Language for Real-time Systems

    Extempore: A Real-time Programming Language for Real-time Systems

    Extempore 是一套实时编程语言和运行环境,它提供了一个机体编程 (Cyberphysical Programming)[1] 环境,以支持对多媒体和实时系统的实时编程(Live Coding)。所谓机体编程,就是允许编程者可以在任意时刻自由地修改程序并即时影响系统的运作,达到“即写即执行”。官方的介绍如下:

    Extempore is a programming language and runtime environment designed to support ‘cyberphysical programming’. Cyberphysical programming supports the notion of a human programmer operating as an active agent in a real-time distributed network of environmentally aware systems. The programmer interacts with the distributed real-time system procedurally by modifying code on-the-fly.

    Extempore 的前身是 Impromptu ,由 MOSO 公司的创始人 Andrew Sorensen 所设计和开发,并托管在 Github 上。

Read More

Jan 20 2015
Master Dissertation: Foreground-Constrained Eulerian Video Magnification

    Master Dissertation: Foreground-Constrained Eulerian Video Magnification

    前言

    10个月前,我写了一篇解读欧拉影像放大技术的文章 Eulerian Video Magnification,这篇文章自发布以来,点击率超过了1300次,评论数达到了29篇。如果你在 baidu 上搜索“Eulerian Video Magnification”,我的文章排在第二名(第一名是原论文的链接)。而如果你在 google 或 baidu 上搜索 “欧拉影像放大” ,那么第一名的位置就是我的文章。

    一个促使我写出这篇博文的原因是因为我的毕业课题就和 EVM 算法有关。当时想着既然一直在钻研这个算法,不如干脆写成博文,一来帮助自己思考,二来也能够通过与其他人交流,加深自己对这个算法的理解。我的论文的想法也很简单,EVM 对于存在大幅度移动物体的细微变化的放大效果并不理想,于是我想到通过与拉格朗日视角的框架相结合,先对感兴趣区域进行跟踪(拉格朗日视角),然后对跟踪结果进行局部的欧拉视角的动作放大,最后再进行多分辨率混合。整个算法框架我称之为“前景约束的欧拉影像放大算法”(Foreground-Constrained Eulerian Video Magnification, FCEVM)。

Read More

Jan 15 2015
Write a Tiny Shell-based Test Framework

    Write a Tiny Shell-based Test Framework

    参与过服务端的后台开发和测试的同学对服务器压力测试应该都不陌生了。为了对线上服务进行模拟测试,往往需要编写自动化的测试工具。一个常见的原型通常是这样的:

    1. 从指定地址下载待测的服务器程序,完成本地化配置和部署;
    2. 使用事先构造好的压力词表生成一系列的请求,并以指定的速率(QPS)向服务器发送这些请求;
    3. 解析服务器的日志,统计压力测试结果。

    当然,实际上的测试环境可能更加复杂。比如,有些服务还要防止同一个 ip 地址在短时间内发出大量请求,相应的就要通过伪造 ip 等手段覆盖这种 case 。但“万变不离其宗”,基本的流程不会有太大的改动。

    无需借助其他语言,以上的工作其实只需用 Linux 自带的 Shell 就可以实现了。这给大多数 Linux 服务器开发测试人员所带来的好处就是完全轻量级,省去了配置开发环境的环节。本文就围绕如何基于 Shell 编写一个简单的测试框架,完成上面的所有工作。

Read More

Jan 4 2015
介绍 GodEyes-iOS

    介绍 GodEyes-iOS

    GodEyes-iOS 是一款针对 iOS App 的源码 crash 隐患扫描工具。特点包括:

    1. 专注于 iOS APP 代码的 Crash 隐患静态扫描。
    2. 扫描规则提取自 APP 的典型 crash 案例代码,并且在持续增加中。
    3. 扫描规则可定制,提供多种格式的扫描报告。

    一个典型的过程是每次完成你的 iOS 项目的迭代后,就使用 GodEyes 扫描一次你的工程的代码。然后打开扫描结果,定位到上面列举的存在隐患的代码,确认一下是否存在隐患,然后对问题代码进行修改。你也可以很轻松地将它作为持续集成的其中一步,通过解析生成的 json 结果文件,得到当前的代码隐患情况,并作为判断持续集成状态的其中一个项目。

    GodEyes-iOS 还有一个兄弟 GodEyes-Android,顾名思义,GodEyes-Android 所针对的是 Android APP 源码的静态扫描。

    下文将重点介绍 GodEyes-iOS。1 1出于方便,下文一律将 GodEyes-iOS 简称为 GodEyes。

Read More

Jul 13 2014
Wixo - a wiki theme for Hexo

    Wixo - a wiki theme for Hexo

    自从我将博客的主题 Freemind 开源了之后,我收到了很多朋友的来信,希望我也能把博客里的 Wiki 部分也开源。

    当初没有将 Wiki 的部分放进博客,主要是考虑到主题的简单性。原来的主题包含了很多我个人的特殊定制,虽然自己用着方便,但对别人就不见得适用了。比如,由于我的博客有 post 和 wiki 两套主要的 layout,为了创建草稿的时候有所区分,原来的 hexo new 就不适用了,于是我都是用自己写的工具来创建草稿。再比如,由于是自己用的东西,也就无所谓代码的模块化,有些 hard-code 的地方要做到灵活可定制又得折腾一顿功夫,而且太多定制项又会增加用户的学习负担。考虑再三,我决定将 Wiki 部分去除,尽可能保证主题整体的简单和模块化。本来我开源了 Freemind 主题后也不打算再写其他主题了,但因为来信询问 Wiki 主题的朋友实在太多,于是也给了我动力编写第二个主题 Wixo

Read More

© 2017 Joseph Pan with help from Hexo and .