文章

目前顯示的是 十一月, 2016的文章

[Solved] sqlplus on ubuntu support big5 and support arrow key

command like below

> export NLS_LANG=AMERICAN_AMERICA.ZHT16MSWIN950
> luit -encoding big5 rlwrap sqlplus

說明:

1. NLS_LANG環境變數設定
2. luit 讓後面的指令轉為 big5 編碼
3. rlwrap 讓後面的指令支援方向鍵

Build in line bot webhooker web server on docker

請參考我的 github

WebServLineBotDocker

Messenger bot framework 之我見

圖片
上次在不清不楚的情況下,實做了 facebook messenger bot,做是作起來了,當下也了解到平台實做不是最大的問題,問題在客戶(使用者)在表達什麼意思,如果是文字對話,就是自然語言的辨識,也就是 AI 的問題,網路上有許多 bot ai 製作工具,我沒用過,倒是這幾天有看到微軟出的 bot framework,似乎也是個方法。

這兩天再接觸了 Line Messenger API,對照之前使用 facebook bot api 的經驗,可以發現各家對於 messenger api 作法都很相近,似乎對於這樣的架構頗有共識。

不多說,從使用 bot api 的經驗去想像整體架構,用一張圖來表達

add localhost ssl certificate to nginx

1. key

openssl genrsa -des3 -out localssl.key 1024

2. csr

openssl req -new -key localssl.key -out localssl.csr

3. remove passphrase

cp localssl.key localssl.key.org
openssl rsa -in localssl.key.org -out localssl.key

4. crt

openssl x509 -req -days 365 -in localssl.csr -signkey localssl.key -out localssl.crt

5. add to ssl certificate

sudo cp localssl.crt /etc/ssl/certs/
sudo cp localssl.key /etc/ssl/private/

6. modify /etc/nginx/sites-enabled/flask.conf (flask.conf to be replace to your configure name)

server {
    listen      80;
    server_name admin.domain.com;
    charset     utf-8;
    client_max_body_size 75M;


    location / {
        include uwsgi_params;
        uwsgi_pass unix:/var/www/app/uwsgi.sock;
    }

    location /static {
    root /var/www/app/;
    }
}

server {
    listen                443;
    ssl                   on;
    ssl_certificate       /etc/ssl/certs/localssl.crt;
    ssl_certificate_key   /etc/ssl/private/localssl.key;
    keepalive_timeout     70;
    server_name           admin.domain.c…

flask + nginx + uwsgi

套件簡略說明

flask: python micro web framework
nginx: web socket service
uwsgi: protocol between python and nginx
--------------------------------------------------
環境介紹

os: ubuntu 64bit
web server: nginx + uwsgi + uwsgi-plugin-python
web framework: python 2.7 + flask

other packages: pip, virtualenv
--------------------------------------------------
套件安裝

1. virtualenv: sudo apt-get install virtualenv
2. nginx: sudo apt-get install nginx uwsgi  uwsgi-plugin-python
3. flask: pip install flask (在虛擬環境下)

ps. 系統不要裝 pip,以免虛擬環境安裝套件時安裝到系統上
--------------------------------------------------
環境建置

1. virtualenv

root> virtualenv /var/www/app/venv
root> source /var/www/app/venv/bin/activate  #進入虛擬環境
(venv) root> #前綴字表示虛擬環境

2. environment configure
  (1) nginx

#nginx configuration: /etc/nginx/sites-enables/flask.conf

root> rm /etc/nginx/sites-enables/default
root> cat /etc/nginx/sites-enables/flask.conf
server {
    listen      80;
    server_name localhost;
    charset     utf-8;
    clie…

[Solved] install pip in synology nas

Step 1: wget https://bootstrap.pypa.io/get-pip.py
Step 2: 切換身份到 root

sudo -i

synology 密碼是 administor 的密碼

Step 3: python get-pip.py

reference: Synology – Installing Python PIP package installer

-----------------------------------------------
remove pip package

python -m pip install -U pip

[Solved] Can't run sikuli IDE

我的系統環境是 ubuntu 16.10 64bit,這兩天裝 sikuli 時出現以往沒遇過的問題,記錄下來以免下次又遇到。
安裝方式大致說一下

1. 安裝 jdk
2. 安裝 sikuli: java -jar sikulixsetup-1.1.0.jar
3. 執行 runsikulix 時出現下列錯誤 (libopencv_core.so not found 或是 libtesseract.so not found)

[info] runcmd: lsb_release -i -r -s
[info] HotkeyManager: add Capture Hotkey: CTRL+SHIFT 2 (50, 3)
[info] HotkeyManager: add Abort Hotkey: ALT+SHIFT C (67, 9)
[error] RunTimeIDE: loadLib: libVisionProxy.so not usable:
java.lang.UnsatisfiedLinkError: /home/nick/.Sikulix/SikulixLibs_201510051707/libVisionProxy.so: libopencv_core.so.2.4: 無法開啟共用目的檔: 沒有此一檔案或目錄
[error] RunTimeIDE: loadLib: libVisionProxy.so not usable:
java.lang.UnsatisfiedLinkError: /home/nick/.Sikulix/SikulixLibs_201510051707/libVisionProxy.so: libopencv_core.so.2.4: 無法開啟共用目的檔: 沒有此一檔案或目錄
[info] runcmd: ldconfig -p
[info] runcmd: wmctrl -m
[error] RunTimeIDE: fatal error: java.io.IOException: Cannot run program "wmctrl": error=2, 沒有此一檔案或目錄
[error] LinuxSupport: checking: wmctrl not available or not working
[info]…