2016年12月25日 星期日

Ubuntu - 設定Logitech M705滑鼠

首先安裝需要的tools
sudo apt-get install xbindkeys xautomation xev

安裝好後,開啟xev
xev
將滑鼠移到黑色方框中,按下欲設定的鍵,下圖紅框即是對應的button number
建立.xbindkeysrc
sudo gedit $HOME/.xbindkeysrc
在.xbindkeysrc內加入button及對應的快捷鍵,如下
"xte 'keydown Control_L' 'key w' 'keyup Control_L'"
b:10

"xte 'keydown Control_L' 'key Page_Up' 'keyup Control_L'"
b:6

"xte 'keydown Control_L' 'key Page_Down' 'keyup Control_L'"
b:7

"xte 'keydown Alt_L' 'key Left' 'keyup Alt_L'"
b:9

"xte 'keydown Alt_L' 'key Right' 'keyup Alt_L'"
b:8
快捷鍵的名稱可以在keysymdef.h中找到
/usr/include/X11/keysymdef.h
例如Control_L鍵的名稱為:XK_Control_L
但是在.xbindkeysrc中不需要加上XK_,只要Control_L




參考連結
How to configure extra buttons in Logitech Mouse

2016年12月21日 星期三

Ubuntu14.04 - 安裝Cuda及Theano

Cuda

確定Gpu是那一張且是否支援Cuda
lspci | grep -i nvidia
到 http://developer.nvidia.com/cuda-gpus 驗證Gpu是否有支援Cuda

確定已安裝Gcc
gcc --version

安裝對應的kernels header
sudo apt-get install linux-headers-$(uname -r)

下載CUDA
從 https://developer.nvidia.com/cuda-downloads,下載對應版本的cuda安裝包
依照Cuda指示,執行以下命令,即可安裝Cuda
sudo dpkg -i cuda-repo-ubuntu1404-8-0-local_8.0.44-1_amd64.deb
sudo apt-get update
sudo apt-get install cuda
*安裝完成,須重新啟動電腦

安裝cuDNN
下載cuDNN,從 https://developer.nvidia.com/rdp/cudnn-download,註冊,然後下載
複製cuDNN library到cuda
tar -zxvf cudnn-8.0-linux-x64-v5.1.tgz
cd cuda
sudo cp lib64/* /usr/local/cuda/lib64/
sudo cp include/cudnn.h /usr/local/cuda/include/

設定環境變數
sudo gedit /etc/profile
加入以下兩句
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
*因為cuda會自動產生捷徑,所以不需要指定到cuda-8.0
保存後,使環境變數立即生效
source /etc/profile
進入/usr/local/cuda/samples,build samples
sudo make all -j4
編譯完成後,進入 samples/bin/x86_64/linux/release,運行deviceQuery
./deviceQuery
若沒有問題的話,最後會顯示Result = PASS


Theano

首先安裝相依的套件
sudo apt-get install python-numpy python-scipy python-matplotlib ipython ipython-notebook python-pandas python-sympy python-nose
安裝BLAS
sudo apt-get install libblas-dev liblapack-dev
安裝theano
sudo pip install Theano
測試GPU
from theano import function, config, shared, sandbox
import theano.tensor as T
import numpy
import time

vlen = 10 * 30 * 768  # 10 x #cores x # threads per core
iters = 1000

rng = numpy.random.RandomState(22)
x = shared(numpy.asarray(rng.rand(vlen), config.floatX))
f = function([], T.exp(x))
print(f.maker.fgraph.toposort())
t0 = time.time()
for i in range(iters):
    r = f()
t1 = time.time()
print("Looping %d times took %f seconds" % (iters, t1 - t0))
print("Result is %s" % (r,))
if numpy.any([isinstance(x.op, T.Elemwise) for x in f.maker.fgraph.toposort()]):
    print('Used the cpu')
else:
    print('Used the gpu')
執行GPU測試程式
THEANO_FLAGS=mode=FAST_RUN,device=gpu,floatX=float32 python test.py
最後顯示Used the gpu,就是成功了




參考連結
Caffe學習筆記2--Ubuntu 14.04 64bit 安裝Caffe(GPU版本)
Installing Theano
Using the GPU

Ubuntu - 中文輸入法 Hime

安裝Hime輸入法
sudo apt-get install hime
系統設定值>語言支援
確定漢語(台灣)在最上層,且鍵盤輸入法系統為hime
開啟Hime輸入法設定
內定輸入法 & 開啟/關閉
*輸入法只勾選詞音,其他全不勾
輸入視窗外觀設定
注音/詞音/拼音設定

Ubuntu - 系統調校

更改root的password
sudo passwd root
更新套件
sudo apt-get update
sudo apt-get upgrade
增加解壓縮7z、rar的功能
sudo apt-get install p7zip-full p7zip-rar
關閉UTC,避免使用Ubuntu讓Windows的時間跑掉
sudo sed -i 's/UTC=yes/UTC=no/g' /etc/default/rcS

Ubuntu - 類似小畫家的工具 KolourPaint

安裝KolourPaint
sudo apt-get install kolourpaint4

2016年12月18日 星期日

Python - matplotlib畫圖表

import pyplot、image
from matplotlib import pyplot as plt
from matplotlib import image as img
Display a Matplotlib RGB Image
image = img.imread(ImageFilePath)
plt.imshow(image)
plt.show()
Add a arbitrary line
plt.plot([x0,x1],[y0,y1],"r")
Invert axis
plt.gca().invert_xaxis()
plt.gca().invert_yaxis()

2016年11月10日 星期四

2016年10月30日 星期日

Android - Accelerometer remove gravity using high-pass filter

var low_x = parseFloat(0);
var low_y = parseFloat(0);
var low_z = parseFloat(0);

function motion(event){

    //Popular filtering value.
    var FILTERING_VALUE = parseFloat(0.1);

    var x = parseFloat(event.accelerationIncludingGravity.x);
    var y = parseFloat(event.accelerationIncludingGravity.y);
    var z = parseFloat(event.accelerationIncludingGravity.z);

    //Low-Pass Filter
    low_x = eval(x * FILTERING_VALUE + low_x * (1.0 - FILTERING_VALUE));
    low_y = eval(y * FILTERING_VALUE + low_y * (1.0 - FILTERING_VALUE));
    low_z = eval(z * FILTERING_VALUE + low_z * (1.0 - FILTERING_VALUE));

    //High-Pass Filter
    var high_x = eval(x - low_x);
    var high_y = eval(y - low_y);
    var high_z = eval(z - low_z);

    //Your Action start IF method.
    if(high_y <= 3 && high_x > 1.8 && high_z <= 3){
        //Do You Action Method (Event).
    }
}

Python - 安裝packages

.whl packages
http://www.lfd.uci.edu/~gohlke/pythonlibs/

下載對應的版本

安裝:
pip install $path\$packageName.whl

2016年10月28日 星期五

Adobe Reader - 關閉右邊的工具窗

1. 功能表上的[編輯] > [偏好設定] > [文件] > 將[開啟個別文件的工具窗格]取消勾選
2. 功能表上的[檢視] > [顯示/隱藏] > [工具窗格] 取消勾選