Python + Dropbox 打造简易版 WebCam

最近一阵离职在家休息,终于有相对充裕的时间折腾研究一些感兴趣的东西,比如 Arduino,比如 Python,比如 HTML5,又比如我还领养了一只小仓鼠。

晚上折腾时发现了 VideoCapture 这个 Python 库,用于获取对视频设备的支持,能通过电脑摄像头捕获视频信号以及截图。联想到平时出门需要了解一下家中仓鼠的动态,于是灵机一动,打算巧借 Dropbox 的力量打造一个 Python 实现的 WebCam。

原理:利用 Python 调用 VideoCapture 获取摄像头拍到的图像,保存到 Dropbox 的 Public 文件夹下,通过 Dropbox 的自动同步更新这个外链的图片文件,从而实现远程监控的 WebCam 功能。

Continue reading “Python + Dropbox 打造简易版 WebCam”

开源微博应用《测测你是哪个奥特曼》for SAE 配置全教程攻略

这篇文章将详细介绍如何利用新浪微博开放平台和新浪的 Sina App Engine 服务调试部署我写的《测测你是哪个奥特曼》源码。目的是帮助首次接触的同学学习掌握 SAE 的玩法(这个服务真的很渣,我在摸索中碰壁许多,也是我撰文分享的初衷之一)。或者您也可以当做是零起点在新浪微博上搞一个测试类应用的傻瓜入门教程。

演示地址:http://ultramantest.sinaapp.com

本应用通过 PHP 写成,但实际上您不需要任何 PHP 基础,直接修改我在源码中的相关参数,并替换一些图片,就可以部署上线。

一、申请开通相关服务账号

首先您需要申请注册 SAE 的账号和微博开放平台的账号(有微博账号的同学可以更快地登录绑定):

SAE:http://sae.sina.com.cn/

微博开放平台:http://open.weibo.com/

二、在 SAE 上创建新应用

SAE 允许每个普通用户创建最多 10 个应用,每个应用将获得形如 yourdomain.sinaapp.com 的二级域名(先到先得,抢啊同志们 — —)。

Continue reading “开源微博应用《测测你是哪个奥特曼》for SAE 配置全教程攻略”

一个开源的基于PHP/SAE的微博开放平台趣味测试应用DEMO

似乎毕业以来就没有时间再做拿得出手的个人开发作品,上次的 Social TV Demo 还停留在丑陋的技术演示程序阶段(尽管如此也帮助我认识了不少看好 Social TV 未来发展方向的朋友和创业团队,呵呵)。最近几周又抽空做了个小玩意儿。其实这个东西简单到完全只需要几个小时就能搞定的,但因为工作实在太忙,所以断断续续始终没能弄好。最后还是在旁听某个无料的分享会的时候顺手给搞定了。

这是一款基于 PHP 语言、Sina App Engine(SAE)部署、连接微博开放平台的趣味测试应用DEMO。最重要的是,它是开源的。也就是说,任何人都可以直接拿来改改(几乎无需修改任何代码,只需要改改测试结果的字段名和替换对应目录下的图片就可以了),就发布一个自己的微博测试。

由于我是日本特摄尤其是奥特曼系列的爱好者,因此测试的名字就是“测测你是哪个奥特曼”,主要玩法就是连接微博账号之后,根据用户昵称判断(用的是 MD5 加密后取头两位)自己对应的奥特曼身份。幼稚也好,脑残也罢,终归是奥迷向从小陪伴成长的英雄们的致敬。

体验地址:http://ultramantest.sinaapp.com

Continue reading “一个开源的基于PHP/SAE的微博开放平台趣味测试应用DEMO”

一个 SocialTV demo

LBS 的 Check-in 概念逐渐开始烂大街,作为一个 TV potato + Mobile addicted + 分享爱好者,很自然想到将正在看的电视节目通过“签到”方式转发到微博,分享给朋友们,也即是所谓的SocialTV。实际上,此种模式国内外已有类似尝试(这两天  Techcrunch Disrupt 2011 上也有这么一家渔玩,不过专家们似乎普遍对市场前景不太看好)。

前两周用周末时间,使用 PHP + Sina App Engine + 微博开放平台做了个网页版的 SocialTV。主要功能就是通过连接微博账号,选择当前频道,系统自动给出当前时间档在播的节目,并可发布一则微博。目前仅是功能演示版,没有任何界面可言(不过针对 iPhone 屏幕还是做了个仿原生的 CSS 效果)。

试玩地址:http://socialtv.sinaapp.com

目前提供的频道除 CCTV 系外,都是我常看的各种地方卫视台。节目信息是从国内某电视节目预告网站抓取来的,做得比较粗略,可能偶尔有时候有部分节目读不出来,显示空白,还需优化。

原本打算再完善下放出来让大家玩的,现在看来工作繁忙,怕是没时间慢慢调整了,就先把功能演示 demo 丢出来了。代码比较简单,有兴趣的我可以分享出来或者丢到 Google Code 上。

顺便说一句,SAE 和微博开放平台提供的官方帮助和演示代码,真 TMD 渣。

东拉西扯:程序猿的五个层次

我很反感装逼的文艺青年写起评论来但凡涉及“境界”二字便非搬出王国维不可的作风,就像我反感做营销提案汇报时总有人爱拿马斯洛需求五层次说事(虽然我也常这么干)。

但今天我必须借鉴一下王国维这装逼的句型——我发现自己已经达到了“醉里挑灯按键,梦回催缴原型”的境界。

今天在公交车上一觉醒来,惊觉自己刚才在梦里还在 review 一段 html 代码(用的还是最新版的 Firebug)。大概是今天白天读到了由新手、熟手和高手所写的三种不同的代码,颇有感触,现在看到波涛汹涌的、分层级的代码,就如同看到波涛汹涌的、未分级的美女那么赏心悦目。

很久以前我觉得程序员是这个世界上最神秘的种族,凭什么大洋彼岸那个叫什么盖子的混球对着黑底白字的电视敲打几下打字机,就成了世界首富。后来自己摸索了几种语言,像模像样地折腾过几个程序(现在看甚至可以称作项目,因为毕竟还正儿八经地规划了下,拿到 softreg 上当作共享软件干了几票 — —),发现其中相当一部分也不过是嘴上虽终日挂着流行技术,实则乖乖儿投靠大语言、寄宿 IDE、琢磨 SDK 过活的程序猿民工(no offense)。

我与真正意义上的程序员、工程师们接触,还属在盛大实习以来(之前都是科班学生或者业余玩票)。

Continue reading “东拉西扯:程序猿的五个层次”

借助 GetFavicon.org 轻松调用网站 favicon 图标

最近在学习用 PHP 仿照 Read It Later 的界面和 Delicious 的浏览器 bookmark 插件机制,写一个自己的网址收藏工具。期间涉及到一个细微的功能要求:获得被收藏网站的 favicon 图标。

最直接的方法自然是直接从网站根目录下读取图标,形如:

http://www.fanbing.net/favicon.ico

网上流行的另一个 hack 是调用 Google 的网站缓存,这不失为借助外力的一种绝佳途径。

调用 Google 缓存地址,形如:

http://www.google.com/s2/favicons?domain=fanbing.net

好处是 powered by Google ,保证了调用速度足够快,不影响访客阅读体验。但要求限制也比较严格,不能带http://,只能是根目录。

然而在我的实际代码中,由于被收藏的网址并不一定是网站根目录,且网址可能的展现形式多样(含/不含http或https、含/不含www、是/不是网站根目录、是/不是子目录、是/不是子目录下的具体文件名、是/不是动态生成的地址、是/不是用bit.ly或goo.gl等服务生成的短地址等),因此仅仅基于被收藏网址的URL这一堆字符串,判断和处理起来异常繁琐。

为此我设法搜索到又一个(不完美)解决这一问题的外援, GetFavicon.org 。站如域名,就是用来快速获得某个网站图标的。

Continue reading “借助 GetFavicon.org 轻松调用网站 favicon 图标”