Use sublime-text in ArchLinux

1. Install Sublime-text in ArchLinux:

	$ pacman -S sublime-text

2. Now we could install the package control from the https://sublime.wbond.net/installation.
After installed the package control, sublime-text should be reboot for make package control to be used.

3. Install stino for Arduino development. You can refer to https://github.com/Robot-Will/Stino.
Beware that Preferences should be set to the corresponding directory, and because Arduino upload uses the ttyUSB device, you’d better use Sublime under root priviledge(directly use root or use sudo subl).

4. To enable vim-like operation, you have to do the following steps:
a. Under Preference–>Settings–>Default: Change the “ignored_packages”:[“Vintage”] into “ingonored_packages”:[]
b. Under Preference–>Settings–>User, Change:

	{
		"ignored_packages":
		[
			"Vintage"
		],
	}

into

	{
		"ignored_packages":
		[
			//"Vintage"
		],
		"vintage_ctrl_keys": true,
		"vintage_start_in_command_mode": true
	}

5. Now you can enjoy your sublime, but beware that some vim-link items should be enhanced.

Android-studio

1.安装步骤
Yaourt市场里可以直接安装:yaourt android-studio, 编译完后即可直接运行之。
官方介绍是:基于IntelliJ IDEA的Android开发环境。 最早发布于2013年5月。
IntelliJ IDEA是JetBrains开发的JAVA IDE. 号称是最好的Java和Polyglot IDE.
Polyglot是一门计算机语言(或者说是脚本),使用C编写,类似于Lisp, Perl或sh

2. Todo LIst
Update android-sdk. because it couldn’t be updated behind the proxy.
如果在防火墙后,更新SDK可能会碰到问题,这时候,到安装android-sdk目录下,输入tools/android,更改Tools->proxy,并使用Force https to https即可

3. Trouble shooting:
如果提示,不能创建NAND, could not create temp file for system NAND disk image:
解决方案为: $ sudo chmod 777 /tmp/android-Trusty/

判断python中值是否存在

故事背景是这样的,写了一个自动获得美帝大使馆空气质量的python脚本,每隔一个小时取回数据存入数据库(数据库用Sqlite3), 并实时生成网页端的统计图形。然而当原始数据无法取得的时候,该程序会自动退出。因为脚本同时取得两个城市的PM值和温度/湿度,如果一个城市数据失败,另一个城市也将失败。
运行时提示: name ‘AQIdigits’ is not defined, 这里的AQIdigits就是用来存储北京pm2.5数据的数组。
解决方案,在插入数据前,检查数据是否存在,如果不存在,直接将其设置为0

+  if (not('bj_temp' in vars() or 'bj_temp' in globals())):
+    bj_temp=0
+  if (not('bj_humi' in vars() or 'bj_humi' in globals())):
+    bj_humi=0
+  if (not(vars().has_key('AQIdigits'))):
+    AQIdigits = [u'0']
+  if (not(vars().has_key('Concendigits'))):
+    Concendigits = [u'0']
   cur_bj.execute('insert into foo values(?, ?, ? , ? ,?)', (bj_temp, bj_humi, AQIdigits[0], Concendigits[0], currenttime_linux))
   cur_bj.execute('select * from foo ORDER BY d_time ASC LIMIT ((Select count([d_time]) from foo)-24),24')

这个修改做完之后,即便无法取回当前有效的数据值,脚本也会用0来代替需要插入的数据。众所周知,以北京的德行,pm2.5永远不可以为0的,所以当看到为0的时候,我们可以断言是源数据出错了。

Python and GPIO on Raspberry PI

1. 安装python-dev, 准备环境

$ apt-get install python-dev
$ wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.3a.tar.gz
$ tar xzvf  RPi.GPIO-0.5.3a.tar.gz
$ python setup.py install

2.

用python操纵Sqlite3

1. 在命令行下使用sqlite3创建数据库, 运行完以下命令后,在本地目录会生成一个weather.db文件,由于我们什么都没有做,所以这个数据库现在是空的。

$ sqlite3 weather.db
SQLite version 3.8.0.2 2013-09-03 17:11:13
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .tables
sqlite> .exit
[Trusty@DashArch weather]$ ls
weather.db

2.