2017/06/21

[Windows] 好用的小工具: AutoHotKey

做為一個 Linux 的愛好者,轉移到 Windows 上面的時候,往往難以適應 Windows 調整快捷鍵的方式,所以 google 了一下,結果發現很多人愛用的 "Auto Hot key"。不多說,就來給一個範例說明如何使用 Auto Hot key 來設定: 在 Windows 上面按下 CTRL + ALT + T 時會跑出 pietty
; 一個〔Ctrl+Alt+F〕按鍵先後啟動FireFox和記事本
^!T::
  Run C:\Users\anton\Downloads\pietty0400b14\pietty0400b14.exe
  return



---
參考資料:
* Auto Hot Key 教學

2017/06/09

[Software][Jenkins] 幹嘛一直重複 build code ??

今年由於工作內容上的改變,花了很多時間在 jenkins 這套軟體的設定上面。其中最讓我覺得麻煩的,就是我的 jenkins 常常 SCM polling 完之後,發現 SVN 有變動的第一件事情,就是重複 build 前面一個 revision。
這讓我覺得很反感,一來是 build code 的時候多花了一份,二來是又會重複寄出通知給小組成員。

所以那時我找不到解法的情況下,我的處理方式就是在 email 的邏輯上面進行調整,把邏輯改成如果 jenkins_api 抓不到 changeSet.items 的話,就不用特別寄信給小組成員,只需要寄信給我就好。

跟著,昨天才找到真正的解法,原來 jenkins 會針對 $WORKSPACE 底下的變動再重 build,所以如果 build code 完畢又再發生變動, jenkins 就會在這次變動之前再 build 一次。

---
參考資料:
* stackoverflow 上的解法
---
錯誤訊息:

WARNING: clock of the subversion server appears to be out of sync. This can result in inconsistent check out behavior.

2017/06/08

[XWindow][XFCE4] 鍵盤快捷鍵不能用

昨天一早來辦公室,結果 keyboard shortcut 幾乎通通起不了作用。常用的 CTRL + ALT + T 去呼叫 gnome-terminal 完全沒反應。想說不知道是不是這兩天調 xfce4 調的太過火了,一時也不知道怎麼處理,索性就 dpkg -l|grep xfce4 叫出來,然後統統 reinstall 一番,之後居然好了?想說,應該不會那麼常發生吧?所以也沒打算再去理它。 

結果今天早上又發生了一次,總不能天天 reinstall 吧?所以就又跑去 google 了一下,結果找到一篇 XFCE4 Keyboard shortcut not working 的討論串,說這是老問題了,用下面這招可以撐一下:

  rm -fr ~/.cache/sessions/*

Log out 切去 tty1 清完 cache 再重啟了 gdm ,登入回來就恢復正常了。 嗯 ... 這招好過 reinstall 吧??
---
參考資料:
* XFCE4 Keyboard shortcut not working

2012/10/31

[Linux] Git Repository 用 http 加上 mysql auth,再加上 gitweb

話說 svn 很好用,不過現在大家都用上 git 來處理自已的 code 了,所以我也想再更新一下之前寫的文章「SVN 跑 http 加上 MySQL auth」,這邊是用 svn 在 http 上面跑的,因為 auth 是在 mysql 上面做,所以可以很自由的 新增/刪除/修改 username,password 甚至是 group,接下來我們就是要沿用這段,讓 git 也可以在 http 上面跑,同時使用 mysql 的授權,再用 gitweb 這個套件就可以很方便的在 web 上面實現瀏覽、和 git 的 source code 管理。

ubuntu 底下,先來安裝套件:(LAMP 就不贅述了)
sudo apt-get install gitweb libapache2-mod-auth-mysql

這是我的 /etc/apache/conf.d/gitweb 設定:
Alias /git /home/git
Alias /gitweb /usr/share/gitweb


  Options FollowSymLinks +ExecCGI
  AddHandler cgi-script .cgi


    AuthBasicAuthoritative Off
    AuthMYSQL on
    AuthMySQL_Authoritative on
    AuthMySQL_DB auth
    Auth_MySQL_Host localhost
    Auth_MySQL_User admin
    Auth_MySQL_Password 12345678
    AuthMySQL_Password_Table clients
    AuthMySQL_Username_Field username
    AuthMySQL_Password_Field password
    AuthMySQL_Empty_Passwords off
    AuthUserFile /dev/null
    AuthMySQL_Encryption_Types Crypt_DES
    AuthType Basic
    AuthName "Restricted ZONE"
    Require valid-user


    AuthBasicAuthoritative Off
    AuthMYSQL on
    AuthMySQL_Authoritative on
    AuthMySQL_DB auth
    Auth_MySQL_Host localhost
    Auth_MySQL_User admin
    Auth_MySQL_Password 12345678
    AuthMySQL_Password_Table clients
    AuthMySQL_Username_Field username
    AuthMySQL_Password_Field password
    AuthMySQL_Empty_Passwords off
    AuthUserFile /dev/null
    AuthMySQL_Encryption_Types Crypt_DES
    # Standard auth stuff
    AuthType Basic
    AuthName "Restricted ZONE"
    Require valid-user


    DAV on
    AuthBasicAuthoritative Off
    AuthMYSQL on
    AuthMySQL_Authoritative on
    AuthMySQL_DB auth
    Auth_MySQL_Host localhost
    Auth_MySQL_User admin
    Auth_MySQL_Password 12345678
    AuthMySQL_Password_Table clients
    AuthMySQL_Username_Field username
    AuthMySQL_Password_Field password
    AuthMySQL_Empty_Passwords off
    AuthUserFile /dev/null
    AuthMySQL_Encryption_Types Crypt_DES
    AuthType Basic
    AuthName "Restricted ZONE"
    Require valid-user
上面都做完了,別人訪問你的 web 的時候,就會使用上 mysql auth 了。不過這邊 database 還沒建好,所以連進去應該會看到 Server Error 500 。 接著是 mysql 的 database auth 的內容:
DROP TABLE IF EXISTS `clients`;
CREATE TABLE `clients` (
  `username` varchar(25) NOT NULL DEFAULT '',
  `password` varchar(25) NOT NULL DEFAULT '',
  `groups` varchar(25) NOT NULL DEFAULT '',
  `email` varchar(256) NOT NULL DEFAULT '',
  PRIMARY KEY (`username`),
  KEY `groups` (`groups`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
INSERT INTO `clients` VALUES ('admin','djifjijigjgdi','admin','');
admin 預設我用上 test1234 ,所以你要修改的話就自已下 encrypt("abcd1234") 之類的來修改。 要換用 sha1 / mysql password 或其它加密方式,請記得跟上面 apache 的 conf 一起修改。 這邊下完我們已經可以使用 mysql 的帳密來訪問網頁了,不過還有一點點事情要做: 1. git repository 只能用 gitweb 訪問。要直接 git access 的話,需要再在 git 的 repository 那邊下:
 git update-server-info 
2. mysql 的帳密需要一個管理介面 (所以我留下了 /admin 的 location) 3. gitweb 預設的 theme 很醜 (修改 /etc/gitweb.conf 把 static 改成別的) 真的很懶,不想再打字了,所以我把整包放在這裡。 需要請自便,稍後我也會把 /admin 的部份再丟上來,那個部份現在還不完整。 --
參考資料
SVN 跑 http 加上 MySQL auth

2012/10/17

[軟體] VirtualBox 在 Windows 上面有夠慢

Fix Slow Windows Networking Problems When VirtualBox is Installed 看到的說明,看起來是 VirtualBox 的 Host Only 的 Driver 有問題的樣子,所以在 Windows 7 裡面,如果開了 Host Only 的部份,會因為這點讓整個 Guest OS 都跑很慢,所以在網路卡設定的地方把 Host Only 停用就可以讓 Guest OS 的速度回來了。

如果堅持要用 Host Only 就沒辦法用這招了。

2012/09/17

[Ubuntu][Linux] 底下安裝 Java VM (JRE) 的流程

話說最近需要在 Chrome 底下看遠端 CAM 的網頁,但是不會安裝 for Ubuntu Linux 的 JRE ,所以又跑去拜大神,問大神有沒有安裝的方法和步驟。(尤其是很久沒有用 firefox 了,所以連 plugin dir 在哪裡都不敢肯定。)

這邊使用的版本是 Google Chrome 21.0.1180.89
對照 Mozilla firefox 的版本是 Firefox 15.0.1

主要參考資料是 這邊 提到的方法,翻成中文是:
1. 移除 openjdk*
sudo apt-get purge openjdk*
2. 去 Oracle 官網 下載 JRE
3. 解開 jre 裡面的內容到 /usr/lib/jvm/jre1.7.0 底下
4. 更新 alternative 的連結
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jre1.7.0/bin/java 0
5. 重新製作 plugin 的連結
sudo update-alternatives 
ln -s /usr/lib/jvm/jre1.7.0/lib/i386/libnpjp2.so ~/.mozilla/plugins/
當然 google-chrome 的 plugin 目錄是在 /opt/google/chrome 所以 chrome 的使用者要調整為:

sudo update-alternatives 
ln -s /usr/lib/jvm/jre1.7.0/lib/i386/libnpjp2.so /opt/google/chrome


這樣就瀏覽器重啟之後, JRE 就可以生效了。
--
參考資料:
* Ubuntu 12.04 底下安裝 Oracle JRE
* 驗證 JRE 是否正常工作的網址

2012/07/23

[Linux] Gnome 3 Gnome Terminal 找不到輸入法

這幾天在玩 gnome shell 時,發現 gnome shell 安裝完,"大概"是 gnome3 昇級 gtk3 的關係,所以 gtk immodule 有動到了,結果 gnome-terminal 開出來,右鍵的輸入法選單都是空的。

空白的輸入法選單



這個問題解法很簡單:
1. 新增一個檔案到 /etc/gtk-3.0/gtk.immodules ,內容是

"/usr/lib/i386-linux-gnu/gtk-3.0/3.0.0/immodules/im-xim.so"
"xim" "X Input Method" "gtk30" "/usr/share/locale" "ja:zh"

"/usr/lib/i386-linux-gnu/gtk-3.0/3.0.0/immodules/im-ibus.so"
"ibus" "iBus" "gtk30" "/usr/share/locale" "ja:zh"

"/usr/lib/i386-linux-gnu/gtk-3.0/3.0.0/immodules/im-gcin.so"
"gcin" "GCIN" "gtk30" "/usr/share/locale" "ja:zh"
2. 登出
3. 再登入

這樣就可以看到正常一點的輸入法選單了:
修正完的輸入法選單

--
* gtk.immodules 檔案內容須以空白相隔,如果不符合格式會出錯。可以參考我的設定檔

[Windows] 好用的小工具: AutoHotKey

做為一個 Linux 的愛好者,轉移到 Windows 上面的時候,往往難以適應 Windows 調整快捷鍵的方式,所以 google 了一下,結果發現很多人愛用的 "Auto Hot key"。不多說,就來給一個範例說明如何使用 Auto Hot key 來...