Oct 19 2015
学习 React Native for Android:React 基础

    学习 React Native for Android:React 基础

    React Native 主张用 React 的开发思维来编写 UI 层。因此在学习 React-Native 之前,了解基本的 React 的语法和存在的坑会对今后 React Native 的开发大有裨益。

    本文将从一个简单的例子开始,逐步完善我们的程序。在这个过程中,我们将一步步探讨如何用 React 来开发网页应用,以及需要注意的陷阱。与其他教程不同,本文将采用类似 Zed A. Shaw《Learn Code the Hard Way》 系列的案例驱动的形式,从例子开始着手。我相信,掌握一门新技术最好的方法就是自己动手。因此,我并不打算面面俱到的列举所有关于 React 的内容,而更倾向于担任一个引路人的角色:把读者们带到 React 花园的门前,然后让读者们在 React 花园里来一场自助游。为了让这个旅途更加有收获,我会在每节内容的最后安排几个练习,并在最后分享一些值得深入学习的文章和教程。

Read More

Dec 5 2013
From Ruhoh to Hexo

    我在年初把博客迁移到了 ruhoh,用了一段时间之后,也开始感觉到各种不满意的地方。

    就我个人的感受,ruhoh 有以下几个不足:

    1. 页面生成速度太慢。到目前为止我的整个站点总共写了100来篇文章,在生成的时候花了将近半分钟的时间。
    2. 定制性有限。由于作者一开始就把 ruhoh 定位在 language agnostic 的目标,因此在采用的模板语言也选用了最平台无关的 mustache。但 mustache 的语法能力实在有限,只支持简单的逻辑判断。像传参、循环之类的特性都不支持。比如我想实现类似 octopress 这样的 tag 插件,直接用 mustache 是不可能的,只能动 ruhoh 的 ruby 源码,而这样又和作者的设计目标相反了。
    3. 太小众。用 ruhoh 的人太少,插件相应也少,不像 Jekyll 或 octopress 那样有丰富的扩展。
    4. 不跨平台。ruhoh 在 Windows 下总会遇到一些奇怪的问题而无法运行。如果我因为特殊原因而需要在 Windows 下写文章的话就会很不方便。
    5. 更新缓慢。在我写这篇博客之前,ruhoh 的已经半年没有什么重大更新了。我在 4 个月前给作者提交了一个给文章生成 postid 的功能性建议,到现在的标签依然还停留在 next-release 阶段。
    6. 最致命的一个问题是,是连作者自己都很少用 ruhoh!在一个 issue 页面里,作者跟我们承认他自己平常也很少使用 ruhoh 。可想而知,如果一个产品连开发者自己都不用的话,很难保证这个产品会做得好。
Read More

Sep 18 2013
让twitter-bootstrap的scrollspy支持中文id

    现在这个bug已经被修复,见#10205。如果你正在使用最新的bootstrap版本,应该不会再遇到这个问题。

    Twitter-Bootstrap有一个名为scrollspy的脚本,顾名思义就是可以帧测页面的滚动,然后自动更新导航条的状态。见下面这个实例(请自动忽略最上面JS Bin的工具条):

    JS Bin

Read More

Aug 1 2013
Alternative Video Source According to IP Address

    我在撰写上篇博文的时候遇到了一个有趣的问题:如何根据ip所在地选择视频源?

    由于你很了解的一个原因,国外流行的视频网站(e.g.YouTube)在国内一般不能访问。为了同时照顾大陆和其他国家地区的视频观看者,@李扬彦博士把我们的视频分别上传到了优酷和YouTube上。于是,作为一名勤奋勇敢的大陆人民(我自豪!),我当然是优先选择嵌入优酷上的视频。但我随后又萌生了一个念头:如果访问者是个外国朋友,访问优酷不一定能像 YouTube 般顺畅(尤其是前者还有万恶的30秒广告!)。能否根据ip所在地的不同,让ip地址不在中国的朋友使用YouTube上的视频源呢?

    于是我就基于 jQuery 和 AJAX 写了这个插件。思路很简单:

    1. 默认先加载优酷上的视频;
    2. 读取访问者的ip信息,判断其所在的国家(或地区);
    3. 如果所在地不是地大物博,千秋万代的大陆地区,就自动将视频源切换到YouTube上;
    4. 用户还可以通过下方的选择按钮切换视频源。
Read More

© 2017 Joseph Pan with help from Hexo and .