Category Archives: Programming

智能家庭2.0

在之前一篇文章里,描述了我的智能家庭1.0版本。当时还只有一个电器,RF24无线传输的价值并没有体现的很明显。但到了2.0版本,有了卧室灯,客厅灯,空调等用电器,无线传输就非常有意义了。

在这一版本我加了一个新功能: 人体感应。其实就是在每个单片机上连一个Motion Sensor,一旦有信号发生,就发送给主控,也就是Raspberry Pi,主控经过判断后作出反应,是应该开或者关。

所以这一版本在整体结构上没有大的变化,主要是发生在软件层:
Raspberry Pi上的主控程序central: https://github.com/miccrun/smarthome/tree/master/central 这个程序会不停读一个文件,一旦有其他程序往这个文件里写入指令,它就会自动执行并且删掉已执行的指令。
Raspberry Pi上的Website: https://github.com/miccrun/smartcontrol 这个site可以响应用户请求,并且生成对应的指令,写入central的buffer文件里。
Arduino程序: https://github.com/miccrun/smarthome/tree/master/arduino

Programming , , , ,

Feedly Tweak – Open feed item in background tab for Firefox

It’s so sad to see Google Reader die, but I found a pretty good alternative, it’s Feedly. The interface looks nice, it can import subscriptions from Google Reader easily, and the most important thing for me is that, it supports keyboard shortcuts.

But there is one thing I don’t really like: when I press ‘v’ to open the feed link, it will focus to the newly opened tab. For Google Reader, I used Google Reader Tweak – Open Links in Background to solve this problem. So when I press ‘v’, the browser will open a background tab to display the link.

I know there is a Chrome version plugin that can solve this, but I love Firefox, it’s my daily browser. The Google Reader Tweak inspired me, I hacked the code to support Feedly. Here is the Feedly version: Feedly Tweak.

Currently, I use Feedly 14.0.485, it has a bug. When you open the links, it will contains a string “?utm_source=feedly” at the end of each feed item. I fixed it in the GM script.

Installation:
1. Install GreaseMonkey Add-on.
2. Install the GM script by clicking here.

Hope you like it!

Update:
03/18/2015 Fix the background opening for new GreaseMonkey

Programming , , , , , ,

Use Siri to control your light and fan

Use a cellphone or computer to control your light is not breaking news, but really full of fun.

Check this quick demo first.

Continue reading

Programming , , , ,

Mac版本Firefox上网神器Pentadactyl配置

Pentadactyl是个Firefox的插件,能实现用VI的操作方式来控制Firefox,从此以后,Firefox成为了上网神器。他从Vimperator发展过来的,听说是因为原先开发小组内成员意见不合,然后一个人就另起炉灶。

Mac版本和Windows以及Linux版本有一定的区别,Mac版不需要Ctrl+C来复制粘贴,用Command+C就行。另外Ctrl+Enter自动补全网址也有所区别,再有就是最新版的Pentadactyl中,修改了strictfocus属性。以下是我的配置文件,保存至~/.pentadactylrc即可。

loadplugins ‘\.(js|penta)$’

” Options
set nextpattern=\s*下一页|下一张|下一篇|下一頁|下页|后页\s*,^\bnext\b,\\bnext\\b,^>$,^(>>|»)$,^(>|»),(>|»)$,\\bmore\\b
set previouspattern=\s*上一页|上一张|上一篇|上一頁|上页|前页\s*,^\bprev|previous\b,\\bprev|previous\\b,^< $,^(<<|«)$,^(<|«),(<|«)$ set mapleader=',' set titlestring='Mozilla Firefox' Continue reading

Programming , , ,

搭建GTalk聊天机器人系列(2)——查字典、查IP、短地址缩减

在上一篇《搭建GTalk聊天机器人系列(1)——远程控制》中,我详细介绍了在Linux下用freetalk搭建GTalk聊天机器人的详细步骤。

在这一部分中,我将介绍如何用freetalk实现GTalk聊天机器人的查字典,查IP,短地址缩减的功能。这里假设有两台机器,一台做Server,一台做Client。

1.Server端

需要安装一个lynx的文本浏览器,使用如下命令:

apt-get install lynx

其他前期准备工作跟上一篇讲的一样,只要把配置文件替换成如下的即可。

点击这里下载。
Continue reading

Linux, Programming , , , , ,

用Python实现从命令行发twitter

比如我在写程序,突然来了个灵感,想发推。这时,停下手头的工作,打开firefox,上twitter.com,选中输入框,输入,tweet。看起来简单,但实际上打断了我写程序的思路,一看到Timeline,就想着往下翻,手头的工作就不要做了。发推应该就跟说话一样简单,不需要那么多步骤。所以,我折腾出了用命令行发推。其实类似的软件或脚本应该有很多,但我觉得我这个还是比较简单的。

从2010年8月31号开始,twitter停止了原先的Basic认证方式,改由OAuth认证。这种认证初看会觉得很复杂,几个token发来发去。简化他有两个办法,第一,官方提供基于OAuth认证的library,各种语言都有,直接拿来用就是;第二,对于单一用户,不用完整实现OAuth功能,官方可以提供最终的access_token。

本文就是基于第二点做的,而且这个方法具有普遍性。很多情况是这样:你在GAE上建了一个gtap来做twitter API,或者GTalk机器人来发推,但实际上,这些服务很有可能只有你自己在使用。这时,你就可以直接从官方获取access_token来进行操作。
Continue reading

Linux, Programming , , ,

搭建GTalk聊天机器人系列(1)——远程控制

GTalk看起来是个很垃圾的聊天软件,但仔细研究,他的魅力在于他使用了XMPP开放协议,这样你可以使用各种各样的客户端来进行聊天。

freetalk就是其中一个客户端,他的优点在于可扩展性,你可以使用scheme语言来添加你想要的功能。

这里介绍的聊天机器人不是那种会跟你聊天的机器人,只是一种简化操作的方法,能实现远程控制,查字典,缩短URL,定位IP地址等,能提高工作效率,也可以纯键盘操作。

1.准备工作

你需要两个GTalk帐号。假设其中一个帐号为A,另一个为B。这里将B作为聊天机器人。A帐号中添加B为好友,添加后,要登录B帐号确认邀请。
Continue reading

Linux, Programming , , , , ,