# pip install gearman
2014年6月30日 星期一
Gearman 使用 MySQL 作爲 job queue
* 工作在執行完後會從資料庫刪除
安裝編譯相關套件:
下載 Gearman :
https://launchpad.net/gearmand
新增資料庫:
References :
【CentOS】Gearman のジョブを MySQL に保存する - pospomeのプログラミング日記
生活在別處 : Gearman 安装及常见问题
舊:
Using Persistent Storage with Gearman | LornaJane
安裝編譯相關套件:
# apt-get build-dep gearman-job-server
# apt-get install gperf libmysqlclient-dev libmysqld-dev
下載 Gearman :
https://launchpad.net/gearmand
$ wget https://launchpad.net/gearmand/1.2/1.1.12/+download/gearmand-1.1.12.tar.gz
$ tar zxf gearmand-1.1.12.tar.gz
$ cd gearmand-1.1.12
$ ./configure --prefix=/opt/gearman
...
...
...
* CPP Flags: -fvisibility=hidden
* LIBS:
* LDFLAGS Flags:
* Assertions enabled: no
* Debug enabled: no
* Warnings as failure: no
* Building with libsqlite3 yes
* Building with libdrizzle yes
* Building with libmemcached yes
* Building with libpq yes
* Building with tokyocabinet no
* Building with libmysql yes
* SSL enabled: no
* cyassl found: no
* openssl found: yes
* make -j: 2
* VCS checkout: no
* sphinx-build: :
$ make
# make install
新增資料庫:
CREATE DATABASE gearman; CREATE TABLE gearman_queue ( unique_key VARCHAR(255), function_name VARCHAR(255), priority INT, data LONGBLOB, when_to_run BIGINT, unique key (unique_key, function_name) );
啓動:
# /opt/gearman/sbin/gearmand --log-file=/var/log/gearmand.log --queue-type=MySQL --mysql-host=127.0.0.1 --mysql-user=gearman --mysql-password=gearman --mysql-db=gearman --mysql-table=gearman_queue --mysql-port=3306
References :
【CentOS】Gearman のジョブを MySQL に保存する - pospomeのプログラミング日記
生活在別處 : Gearman 安装及常见问题
舊:
Using Persistent Storage with Gearman | LornaJane
2014年6月29日 星期日
ImportError: No module named libxml2
# apt-get install libxml2-dev libxslt-dev# pip install lxml
# apt-get install python-libxml2
2014年6月28日 星期六
SNMP 概念
管理者 Manager (Server)
代理者 Agent (Client)
SNMP Version :
1, 2c, 3
3 : 確保 community 間通訊均爲加密
SNMP Community :
類似密碼
預設 "public" community 具有 read-only 功能
預設 "private" community 具有 read-write 以及讀取某些限制性數值的功能
管理者以 snmpget, snmpwalk 向代理者要求值
管理者以 snmpset 向代理者傳送值
代理者以 snmptrap 向管理者 snmptrapd 主動傳送值 (如:電池電量低訊息)
2014年6月25日 星期三
dynamic generate select options
$.each(citys, function(index, value) {
var option = $('
References :
javascript - JQuery create new select option - Stack Overflow
var option = $('
References :
javascript - JQuery create new select option - Stack Overflow
標籤:
html,
javascript,
jQuery
jQuery foreach example
var
arr = [
"one"
,
"two"
,
"three"
,
"four"
,
"five"
];
jQuery.each(arr,
function
(index, value) {
console.log(
this
);
return
(
this
!=
"three"
);
// will stop running after "three"
});
References :
5 jQuery.each() Function Examples
HTML select 元件事件
select 有三種事件:click, blur, change
References :
jQuery get value of select onChange - Stack Overflow
$(function() $('#some_id').on('change', function() {
alert( this.value ); // or $(this).val() }); });
References :
jQuery get value of select onChange - Stack Overflow
標籤:
html,
javascript,
jQuery
mysql auto set timestamp on create and update
ALTER TABLE mytable ADD lastmodified TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP;
References :
php - How to get ID of the last updated row in MySQL? - Stack Overflow
javascript get object properties
function getAllProperties(obj) {
var properties = '';
for (property in obj) {
properties += '\n' + property;
}
return properties;
}
console.log( getAllProperties(MyObject) );
var properties = '';
for (property in obj) {
properties += '\n' + property;
}
return properties;
}
console.log( getAllProperties(MyObject) );
2014年6月24日 星期二
OpenLDAP replication
slurpd - 獨立的程式,監控 master ldap 的更動並記錄在 log,然後對 slave 做相同動作 (新版本 slapd 已不包含 slurpd)
syncrepl - 介於 ldap 核心與資料庫中間,當對 master 資料庫寫入資料時,同時寫入到 slave
mysql-proxy 0.8.1 測試
# apt-get install mysql-proxy
$ mysql-proxy -V
mysql-proxy 0.8.1$ mkdir mysql-proxy
chassis: mysql-proxy 0.8.1
glib2: 2.30.2
libevent: 2.0.21-stable
LUA: Lua 5.1.4
package.path: /usr/lib/mysql-proxy/lua/?.lua
package.cpath: /usr/lib/mysql-proxy/lua/?.so
-- modules
admin: 0.8.1
proxy: 0.8.1
$ cd mysql-proxy
$ wget https://raw.githubusercontent.com/cwarden/mysql-proxy/master/examples/tutorial-query-time.lua
$ vi mysql-proxy.cnf
[mysql-proxy]$ chmod 660 mysql-proxy.cnf
daemon = false
pid-file = /tmp/mysql-proxy.pid
log-file = /tmp/mysql-proxy.log
log-level = debug
admin-username = 1
admin-password = 1
admin-lua-script = /usr/share/mysql-proxy/admin.lua
proxy-address = 0.0.0.0:3307
proxy-backend-addresses = 192.168.24.204:3306
proxy-lua-script = /home/yan/mysql-proxy/tutorial-query-time.lua
$ mysql-proxy --defaults-file=mysql-proxy.cnf
References :
mysql-proxy命令参数(二) | 哈巴狗
2014年6月23日 星期一
OpenLDAP in Docker
OpenLDAP :
https://github.com/nickstenning/docker-slapd
phpLDAPadmin :
https://github.com/osixia/docker-phpLDAPadmin
使用 phpLDAPadmin 匯入 ldif
https://raw.githubusercontent.com/projecthydra-labs/hydra-ldap/master/hydra-ldap-example.ldif
https://github.com/nickstenning/docker-slapd
# docker run \
-e LDAP_DOMAIN=example.com \
-e LDAP_ROOTPASS=admin \
-d slapd
Login DN:
cn=admin,dc=example,dc=comPassword:
admin
phpLDAPadmin :
https://github.com/osixia/docker-phpLDAPadmin
# docker run -p 80:80 \
-e LDAP_HOST=192.168.1.254 \
-e LDAP_LOGIN_DN=dc=example,dc=com \
-e LDAP_LOGIN_DN=cn=admin,dc=example,dc=com \
-d phpldapadmin
使用 phpLDAPadmin 匯入 ldif
https://raw.githubusercontent.com/projecthydra-labs/hydra-ldap/master/hydra-ldap-example.ldif
2014年6月20日 星期五
[發想] 智慧型冰箱
2014/06/20
現代飲食情況:
硬體:
軟體:
功能:
服務整合:
現代飲食情況:
容易浪費食材、吃進較多不營養食品
硬體:
- 平板電腦
- 外掛吸架
- Webcam
- Microphone
軟體:
- 界面爲可愛風格 (舒服生活,從用餐環境做起)
- 以 Webcam 探測有人時,自動喚醒與人互動
- 以 Microphone 輸入冰進冰箱的食品
功能:
食物保存期限 (避免浪費):
依據存入冰箱的食材,判斷到期期限,在保鮮期限、過期時間前發出通知健康 (營養均衡):
依據存入冰箱的食材,判斷每天或一周攝取的營養是否均衡
環保 (自動調節):
依據冰箱內的感測器,調整風量、溫度,並在空間過滿時提出告示
食譜 (下廚樂趣):
依據存入冰箱的食材,或多買一樣食材,可提示建議之食譜 (可與線上食譜網站合作)當季食材 (吃當季最好):
具有提示當季盛產食材的功能,並顯示全國平均售價
服務整合:
- 作爲在地小農與消費者的中介商,在冰箱提出建議食材後,消費者可依據對服務商的信任,透過網路服務購買食材,也促進小農在地食材的通路
2014年6月10日 星期二
SQLAlchemy return insert id
user = db.session.execute(Users.__table__.insert(data))
db.session.commit()
print user.lastrowid
2014年6月9日 星期一
Python set globals variable in module
import my_module
my_module.do_something_with_my_globals(globals())
print globals()
def do_something_with_my_globals(glob): # glob is simply a dict.
glob["foo"] = "bar"
References :
ython: How to make a cross-module variable? - Stack Overflow
2014年6月5日 星期四
2014年6月4日 星期三
Linux 設定時區
Ubuntu: dpkg-reconfigure tzdata
Redhat: redhat-config-date
CentOS/Fedora: system-config-date
FreeBSD/Slackware: tzselect
References :
3 Ways to Change the Timezone in Linux - wikiHow
Redhat: redhat-config-date
CentOS/Fedora: system-config-date
FreeBSD/Slackware: tzselect
References :
3 Ways to Change the Timezone in Linux - wikiHow
Grub2 config file
No /boot/grub/menu.lst. It has been replaced by /boot/grub/grub.cfg.
References :
Grub2 - Community Help Wiki
References :
Grub2 - Community Help Wiki
2014年6月3日 星期二
nose.selector: INFO: test/test_foo.py is executable; skipped
搜尋測試檔案
$ nosetests -vv --collect-only test/
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$']
nose.selector: INFO: test/test_foo.py is executable; skipped
強制執行測試
$ nosetests --exe -v test
--exe Look for tests in python modules that are executable. Normal behavior is to exclude executable modules, since they may not be import-safe [NOSE_INCLUDE_EXE]
References :
python - Run all Tests in Directory Using Nose - Stack Overflow
Why Django nose test need --exe? - Stack Overflow
make: `test' is up to date.
To force rebuild on these kind of not-file-related targets, you should make them phony as follows:
References :
makefile - Why does make think the target is up to date? - Stack Overflow
$ vi Makefile .PHONY: all test clean
References :
makefile - Why does make think the target is up to date? - Stack Overflow
2014年6月2日 星期一
訂閱:
文章 (Atom)