聚會時間公告: 因應COSCUP 2011, Kalug 8月份休會一次

五月 19, 2015
» KDE Applications 15.04.1、Frameworks 5.10 以及其他套件進入穩定套件庫 (Chakra GNU/Linux)

KDE Applications 15.04 系列的第一個更新Frameworks 5.10.0 已經在 Chakra 的穩定套件庫中提供。這次更新也包含了 kde-workspace 4.11.19 與 kdelibs 4.14.8。請記住,那些已經移植到 Frameworks 5 的應用程式將暫時不會出現在 Chakra 的穩定套件庫中,這些套件的新版本將會被推送到 [kde-next] 套件庫中,這個套件庫同時也提供了 Plasma 5。

如果您想要在 Chakra 測試 Plasma 5,您可以依循此說明來切換。有任何想要說的話也歡迎到相關的討論串上發言。


其他一些值得注意的套件更新:

  • digikam 4.10.0
  • php 5.6.9
  • sqlite3 3.8.9
  • wine 1.7.43
  • 給 304xx 與 340xx 系列驅動程式使用的nvidia-settings 也已經加入到 [extra] 套件庫中

在更新途中對取代套件等問題回答「Yes」應該是十分安全的。倘若使用者有任何疑惑,或者您遇到其他問題,歡迎上論壇詢問或回報
一如既往的,請在更新前確定您的映像站已完成同步。可以在 konsole下執行 mirror-check,或使用在網際網路類別底下的鏡像站檢查軟體以確認。

新聞來源:Updates to KDE Applications 15.04.1 , Frameworks 5.10 and other packages available

五月 17, 2015

110碼:AAA2369
110碼:AAA2369
寫 code 當總統 is about »

tag cloud

» Sed del lines from file tail

Sed 删除檔案最後幾行

Sed 在自動編輯與刪行上非常便利簡便,但要砍檔案末幾行,用 sed 實在想不比較好的方法。

最後請出 tac 來解決問題。如果您有更好的方法,還請讓我知道,感謝。

$> tac /etc/passwd | sed '1,5d' | tac

» Emacs lisp exception

Emacs Elisp 例外處理

網路上找到了二篇 Elisp exception 相關的 blog.

(let ((result (ignore-errors
                (error "Failed")
                t)))
  (unless result
    (message "action exception")))
(condition-case err-var
    (progn
      (error "Failed"))
  (error "Error: %s" err-var))
(ignore-errors
  (unwind-protect
      (progn
        (error "hoge"))
    (message "This code is must executed!!")))

五月 15, 2015
» calibre 2.28 釋出

自由的跨平臺電子書管理軟體,calibre 2.28 正式版釋出,此版本新增了幾個功能以及修正了 6 個bug。
calibre 2.X 版本支援Windows Vista~ 8 (皆含 32 位元及 64 位元版本)、Mac OS X 10.7 或更新、各種 Linux 發行版。若您的作業系統是 Windows XP 或是 Mac OS X 10.5、10.6,請繼續使用 1.48 版。

來源:http://calibre-ebook.com/whats-new

五月 13, 2015
» digiKam 4.10.0 釋出

digiKam,一個 KDE 桌面環境下的影像管理程式,在2015年5月12日釋出了 4.10.0 正式版,此版本是一個次要釋出版本,修復許多臭蟲,移植到 KDE Frameworks 5 的工作也正如火如荼的進行中。

來源:digiKam Software Collection 4.10.0 released...

五月 12, 2015
» 解決 Discourse 中文搜尋問題

Discourse 是好用的Rails論壇,但可惜的是他的中文搜尋至目前為止有點問題。完成以下設定就可以修復中文搜尋功能。 1. 在管理員設定>其他中把 min search term length 設為1,這樣一個字就能搜尋。 2. 把資料庫編碼修正為UTF-8。 2-1. 到架設discourse的資料夾執行: ./launcher enter app 2-2. 進入機器後,要進入資料庫: sudo -u postgres psql discourse 2-3. 接著更新資料庫編碼 update pg_database set encoding = pg_char_to_encoding('UTF8') where datname = 'discourse'; 2-4. 離開資料庫: 輸入 \q 就可以離開postgreSQL了。 2-5. 更新舊的index 由於

五月 9, 2015
» KDE Frameworks 5.10.0 發佈

這次的釋出包含了一些錯誤修復與新功能,其中較值得注意的新功能是,KCoreAddons 有新的 cmake 巨集 kcoreaddons_add_plugin 以較方便的建立基於 KPluginLoader 的外掛程式,而 KIO 也包含了許多的新功能及修復。

新聞來源:Release of KDE Frameworks 5.10.0


110碼:AAA2369
110碼:AAA2369
寫 code 當總統 is about »

tag cloud

» Tip. Emacs Recursion in lambda in Elisp

Emacs Elisp 在 lambda 下使用 Recursion

Recursion 是 lisp 的天性,習慣後也愛上它的簡捷便利。但在 lambda 下如何作 Recursion 還真不知如何下手。

Stack Overflow - emacs - Recursion in lambda in Elisp 找到 labels [1] 這個線索,細看後謎團也就解決了。

Example

(message (format "%s"
(cl-labels
    ((my-ranges (s e sp)
                (if (< s e)
                    (cons s (my-ranges (+ s sp) e sp)))))
  (my-ranges 1 11 2))))

Message OutPut: '(1 3 5 7 9)
[1]Emacs 24.3 之後建議改用 cl-labels

五月 8, 2015
» LibreOffice 4.4.3 釋出

LibreOffice 4.4.3 已經釋出,這是 4.4 系列的的第三個錯誤修正版本,包含了超過 80 個錯誤修復,其適合在企業中大量部署。
文件基金會也建議在有認證專家做為後盾的情形下部署到大型企業及組織,以提供額外的加值服務。
另外,官方也建議所有使用者更新到 4.4.3 或 4.3.7 的其中一個版本,因為這兩個版本修正了一些安全性問題。

新聞來源:LibreOffice 4.4.3 is ready


小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» Node.js Mocha 延遲測試

687474703a2f2f662e636c2e6c792f6974656d732f336c316b306e32413155334d3149314c323130702f53637265656e25323053686f74253230323031322d30322d32342532306174253230322e32312e3433253230504d2e706e67

如果大家有在寫 Node.js Express Framework,一定對 Mocha Unit Testing 不陌生,各位工程師不要太相信自己寫的程式碼,產品上線前,務必要把 Unit Test 寫完整,如果是要 Code Refactor,那測試的重要性更是大。網站架構越來越大,功能越來越多,每寫一個新功能,都會產生 side effect,造成其他程式或邏輯出錯,這時候就需要 Unit Test 來驗證邏輯的正確性。使用 Express 寫 API 我個人會建議使用 Supertest + Should.js 來驗證後端程式碼即可,這幾套框架都是由 TJ Holowaychuk 完成。使用 supertest 也可以讓 express 不用 listen port 就可以測試。

在 Express 內如果有寫 Async 程式,在測試過程中,這時候測試最後會先拿到 response,Async 部分尚未處理完,這時就會驗證失敗,要避免錯誤驗證,解決方式就是在測試過程中使用 delay time,延遲幾秒後才開始測試。底下範例可以在測試內延遲幾秒再繼續測試。

it('enable device mobile if post same data again.', function(done) {
  DeviceMobileRels.scope('deleted').find({
    where: {
      deviceId: deviceId,
      mobileId: mobileId
    }
  }).then(function(mobile){
    should.exist(mobile);
    return request(mcs)
      .post('/xxxxxx/xxxxxxxx')
      .set('Accept', 'application/json')
      .expect(200)
      .expect('Content-Type', /json/);
  }).then(function() {
    // delay 900ms to test
    setTimeout(function () {
      return DeviceMobileRels.find({
        where: {
          deviceId: deviceId,
          mobileId: mobileId
        }
      }).then(function(mobile){
        should.exist(mobile);
        done();
      });
    }, 900);
  });
});

每一個測試時間都必須在 2000ms 內完成,如果測試 delay 時間需要延遲超過兩秒,請務必在最前面補上 this.timeout(1000); 單位是毫秒。

五月 5, 2015

110碼:AAA2369
110碼:AAA2369
寫 code 當總統 is about »

tag cloud

» Tip. Emacs scripts

用 Emacs lisp 當 script language

與 Emacs 相處越久,越習慣 elisp 後,漸漸把常用的工具也 elisp 化。底下簡單記錄幾個入門用法。

Elisp with arguments

$> cat elisp-argv.el

#!/bin/sh
":"; exec emacs --no-site-file --script "$0" -- "$@" # -*-emacs-lisp-*-
(princ (format "hello %s!\n" argv))
(while argv
  (princ (format "Hello %s!\n" (pop argv))))

$> chmod +x elisp-argv.el
$> ./elisp-argv.el lloyd huang
hello (-- lloyd huang)!
Hello --!
Hello lloyd!
Hello huang!

Elisp with standard input

$> cat elisp-stdin.el

#!/bin/sh
":"; exec emacs --no-site-file --script "$0" -- "$@" # -*-emacs-lisp-*-
(let (line)
  (while (setq line (ignore-errors (read-from-minibuffer "")))
    (princ (format "--> [%s]!\n" line))))

$> chmod +x elisp-stdin.el
$> cat /etc/passwd | ./elisp-stdin.el
--> [root:x:0:0:root:/root:/bin/bash]!
--> [bin:x:1:1:bin:/bin:/bin/false]!
skip ...

Elisp enable debug mode

$> cat elisp-debug.el

#!/bin/sh
":"; exec emacs --no-site-file --script "$0" -- "$@" # -*-emacs-lisp-*-
(setq debug-on-error t)
(typo-err)

$> chmod +x elisp-debug.el
$> ./elisp-debug.el
Debugger entered--Lisp error: (void-function typo-err)
  (typo-err)
  eval-buffer(#<buffer  *load*> nil "elisp-debug.el" nil t)  ; Reading at buffer position 118
  load-with-code-conversion("elisp-debug.el" "elisp-debug.el" nil t)
  load("elisp-debug.el" nil t t)
  command-line-1(("-scriptload" "./elisp-debug.el" "--"))
  command-line()
  normal-top-level()

五月 2, 2015

小惡魔AppleBOY
AppleBOY
小惡魔 - 電腦技術 - 工作筆記 - AppleBOY is about »

tag cloud

» Mac iTerm2 + tmux 搭配 Mouse mode

Screen Shot 2015-05-02 at 10.17.10 AM

在 Mac 上必裝 iTerm2 終端機軟體搭配 copy mode 相當好用,只要用滑鼠選擇了一段文字,系統就會自動幫忙 copy,接著在任何地方就可以直接使用 command + v 貼上,如果要多視窗操作,可以安裝 tmux 多視窗軟體,如果使用了 tmux 你會發現滾輪滑鼠無法使用了,也就是看不到執行過的畫面跟指令,這時候就要調整 tmux 設定檔,補上 Mouse mode 設定檔

# Mouse mode

set -g mode-mouse on
set -g mouse-resize-pane on
set -g mouse-select-pane on
set -g mouse-select-window on

使用上述的 mouse mode 後會發現原本 copy mode 又不能使用了,這時候我想到的解法就是透過 tmux bind key 功能,隨時可以將 mouse mode 關掉,讓原本的滑鼠可以使用 copy mode,底下是 bind key 做法

# Toggle mouse on
bind m \
  set -g mode-mouse on \;\
  set -g mouse-resize-pane on \;\
  set -g mouse-select-pane on \;\
  set -g mouse-select-window on \;\
  display 'Mouse: ON'

# Toggle mouse off
bind M \
  set -g mode-mouse off \;\
  set -g mouse-resize-pane off \;\
  set -g mouse-select-pane off \;\
  set -g mouse-select-window off \;\
  display 'Mouse: OFF'

這時候使用者可以透過 ctrl + a + M 來關閉 mouse mode,但是總覺得這方式還是有點麻煩,所以找了一下 stackoverflow 的解法,發現有快速鍵可以解決此問題,在 tmux 底下使用 mouse mode 如果要複製文字,可以先按下 option 鍵 + 滑鼠選取文字,這樣就可以了,終於可以不用透過 bind key 來關閉 mouse mode 了。

在我的 dotfiles Github repo 內有 .tmux.conf 設定檔可以給大家參考,tmux 快速鍵可以直接參考網路上整理好的 tmux shortcuts & cheatsheet

五月 1, 2015
» calibre 2.27 釋出

自由的跨平臺電子書管理軟體,calibre 2.27 正式版釋出,此版本新增了幾個功能以及修正了 4 個bug。
calibre 2.X 版本支援Windows Vista~ 8 (皆含 32 位元及 64 位元版本)、Mac OS X 10.7 或更新、各種 Linux 發行版。若您的作業系統是 Windows XP 或是 Mac OS X 10.5、10.6,請繼續使用 1.48 版。

來源:http://calibre-ebook.com/whats-new

四月 28, 2015
» KDE Plasma 5.3 發佈

除了先前在 5.3 Beta 版提到的新功能外,5.3 正式版中還新增了桌面微調時可開啟或關閉在小工具上長按並拖曳的功能,若開啟此功能,小工具旁的設定選項將只會在按住時出現,而非將滑鼠游標停在其上時顯示,並且在解鎖桌面時也會有相關的通知。





按住並保持微調


新聞來源:KDE Ships Plasma 5.3, New Feature Release

四月 27, 2015
» Pacman 4.2.1 更新需要手動調整 (Chakra GNU/Linux)

在您的下一次更新,pacman 將會更新到 4.2.1,這是由 Arch Linux 的開發者所提供的最新版本。您將會在這次更新完成後,再次執行「sudo pacman -Syu」時看到下列的錯誤訊息:

錯誤:alpm函式庫初始化失敗
(資料庫版本不對: /var/lib/pacman/)
錯誤:  請嘗試運行 pacman-db-upgrade


要修復此錯誤訊息,請按其建議執行:
sudo pacman-db-upgrade

在此之後,pacman 應該就能正常運作了。

Pacman 4.2 及以上將不再把目錄的符號連結視為目錄。如果套件包含了安裝到在檔案系統上是符號連結的目錄的檔案的話,安裝將會失敗。這種類型的目錄的一些常見位置為 /sbin、/bin、/lib、/lib64、/usr/lib64、/var/run。團隊試著找到並修復所有受影響的套件,但您若仍有安裝到受影響的在官方套件庫中的套件,請至錯誤追蹤系統回報。如果您維護著 CCR 上其中一個受影響的套件,請檢查您的套件是否安裝檔案到已符號連結的目錄中。您可以使用「file」指令來測試特定目錄是否為符號連結。倘若使用者有任何疑惑,或者您遇到其他問題,歡迎上論壇詢問或回報。

一如既往的,請在更新前確定您的映像站已完成同步(至少必須確認 core 已同步)。可以在 konsole下執行 mirror-check,或使用在網際網路類別底下的鏡像站檢查軟體以確認。

新聞來源:Pacman 4.2.1 update needs manual intervention

四月 26, 2015
» LibreOffice 4.3.7 釋出

LibreOffice 4.3.7 已經釋出,這是 4.3 系列的的第七個錯誤修正版本,包含了超過 100 個錯誤修復,其適合在企業中大量部署。
文件基金會也建議在有認證專家做為後盾的情形下部署到大型企業及組織,以提供額外的加值服務。

新聞來源:The Document Foundation announces LibreOffice 4.3.7

四月 24, 2015
» calibre 2.26 釋出

自由的跨平臺電子書管理軟體,calibre 2.26 正式版釋出,此版本新增了幾個功能以及修正了 9 個bug。
calibre 2.X 版本支援Windows Vista~ 8 (皆含 32 位元及 64 位元版本)、Mac OS X 10.7 或更新、各種 Linux 發行版。若您的作業系統是 Windows XP 或是 Mac OS X 10.5、10.6,請繼續使用 1.48 版。

來源:http://calibre-ebook.com/whats-new

四月 22, 2015
» KDE Applications 15.04、Frameworks 5.9、Linux 3.19.4 進入穩定套件庫 (Chakra GNU/Linux)

KDE Applications 15.04 系列的第一個版本及 Frameworks 5.9.0 已經在 Chakra 的穩定套件庫中提供。這次更新也包含了 kde-workspace 4.11.18 與 kdelibs 4.14.7。請記住,那些已經移植到 Frameworks 5 的應用程式將暫時不會出現在 Chakra 的穩定套件庫中,但它們已經準備好包含在即將到來的 Plasma 5 ISO 映像檔中。

根據 KDE 的官方公告,自 KDE Applications 15.04.0 開始,KDE Telepathykdenlive 將會與其他的 KDE 應用程式一同釋出。


其他一些值得注意的套件更新:

  • linux 3.19.4
  • nvidia 346.59
  • git 2.3.5
  • vlc 2.2.1
  • wine 1.7.41
  • ruby 2.2.2
  • digikam 4.9.0
  • apache 2.4.12
  • subversion 1.8.13
  • bomi(一個基於 mpv 的圖形化使用者介面播放器) 0.9.7
  • otf-source-han-sans (CJK 字型)1.002

在更新途中對取代套件等問題回答「Yes」應該是十分安全的。倘若使用者有任何疑惑,或者您遇到其他問題,歡迎上論壇詢問或回報。
一如既往的,請在更新前確定您的映像站已完成同步。可以在 konsole下執行 mirror-check,或使用在網際網路類別底下的鏡像站檢查軟體以確認。

新聞來源:KDE Applications 15.04 , Frameworks 5.9 and linux 3.19.4 available

» digiKam 4.9.0 釋出

digiKam,一個 KDE 桌面環境下的影像管理程式,在2015年4月8日釋出了 4.9.0 正式版,此版本是一個次要釋出版本,修復許多臭蟲,移植到 KDE Frameworks 5 的工作也正如火如荼的進行中。

來源:digiKam Software Collection 4.9.0 released...

四月 18, 2015
» LibreOffice 5.0 的 Bug Hunting 會議

什麼?LibreOffice 要出5.0了?我們一起來協助開發者們抓蟲蟲吧!
LibreOffice 5.0 的 Bug Hunting 會議

support:

一頁

A Django site.