2013/07/21

fasd on Ubuntu - 命令列加速工具



(圖片來自 o3noblog)

之前 othree 大大推薦的 fasd 可在 PPA 上下載了。

$ sudo add-apt-repository ppa:fcwu-tw/ppa
$ sudo apt-get update
$ sudo apt-get install fasd

使用 bash 的朋友們,可在 .bashrc 加入

eval "$(fasd --init auto)"

可用的命令有

alias a='fasd -a'        # any
alias s='fasd -si'       # show / search / select
alias d='fasd -d'        # directory
alias f='fasd -f'        # file
alias sd='fasd -sid'     # interactive directory selection
alias sf='fasd -sif'     # interactive file selection
alias z='fasd_cd -d'     # cd, same functionality as j in autojump
alias zz='fasd_cd -d -i' # cd with interactive selection

真是好記又好用 :)

2013/07/17

Linux Firmware Debug Kit on Ubuntu




跟我一樣有點年紀,或是曾經做過 BIOS 相關工作的朋友們,一定有聽過 merck 的 LFDK。沒有聽過 LFDK,至少也有聽過 RU 吧,但 RU 是在 DOS 執行的工具,LFDK 則是相似的 Linux 工具。目前 LFDK 能查看 PCI register,IO and memory space。

小 弟將它重新包裝並做些修改後放到人 PPA 上,可以使用以下指令安裝:

$ sudo add-apt-repository ppa:fcwu-tw/ppa
$ sudo apt-get update
$ sudo apt-get install lfdk

執行

$ sudo lfdk

程式完全用 github 托管,希望有心人能再豐富 lfdk 的功能。

2013/06/27

Linux Power and Battery Life



這篇文章整理之前在看 Ubuntu 省電機制的。


電池資訊


Linux 系統中的電池資訊在 sysfs 裡都找得到,如下。或是直接使用 gnome-power-statistics 來看也可以,如上圖。

u-Latitude-E6440:/sys/class/power_supply/BAT01 ls
alarm               current_now   model_name     status      uevent
charge_full         cycle_count   power          subsystem   voltage_min_design
charge_full_design  device        present        technology  voltage_now
charge_now          manufacturer  serial_number  type

對 voltage_now, current_now, charge_full, voltage_min_design 做簡單的運算便能得到放電速度及總電量。底下的 script 提供了簡單的放電速度統計。



執行畫面如下:

u@u-Latitude-E6540:~1 ./power.sh  ts
Jun 13 16:20:43 current   average   capacity   full_capacity   time_left
Jun 13 16:20:43 14.13254   14.13254   37.19610   65.49000   2.63
Jun 13 16:20:48 14.07107   14.11409   37.17390   65.49000   2.63
Jun 13 16:20:53 14.08747   14.10610   37.15170   65.49000   2.63
Jun 13 16:20:58 13.77746   14.00750   37.14060   65.49000   2.65
Jun 13 16:21:03 14.03222   14.01491   37.11840   65.49000   2.64
Jun 13 16:21:08 13.16450   13.75978   37.09620   65.49000   2.69

有時沒儀器可以量時,用 script 來計算是蠻方便的。


延長電池使用時間


之前用了 2 種方式來讓系統更省電。

  1. Append boot coomand "pcie_aspm=force"
  2. Install PowerTOP
  3. Install Laptop Mode Tools

第一種 ASPM 的方法,大概可以省個 2 W 左右。第二種 PowerTOP 的方式,全部省電機制啟用,也可再省個 2 W 左右。最後第三種 laptop-mode-tools,這只是個方便的 PowerTOP 工具而已,它會讓你在沒插 AC 電源時,自動將 PowerTOP 的省電機制啟用。個人是建議一般的 NB 可以試試 1 + 3。

最近做到的平台都是 SharkBay (haswell),對於硬體比較有針對省電設計的,大概上面那些機制全下,大概平均耗電量是 6 W/h,對於常見的 50 W 的電池用個 8 小時是沒問題,但 8 小時也是要 NB 放著都不動,如果像我常看個影片,開個 VM,那還會有 5 小時嗎?呵呵

(對於 MBA 的 12 小時來說,8 小時跟垃圾一樣)

2013/06/17

GTK 3 and CSS in Python



最近在看 CSS 對於 GTK 3 程式的支援,並且寫了一些小程式玩了一下,覺得相當愉悅。

在 GTK 2 以前,要修改 widget 外觀要可以透過 gtkrc,但對於 GTK 3 可以直接給 CSS 相較之下,修改 CSS 簡單多了。此外 CSS 又提供像是背景的 gradient, transition, border-radius, border-image 這類的特性,要做到一些簡單的特效也變得十分容易。詳細的特效可參考 GtkCssProvider

想直接玩一下 CSS 的花樣可直接在 Ubuntu 13.04 下安裝 gtk-3-examples,並執行 gtk3-demo

$ sudo apt-get install gtk-3-examples
$ gtk3-demo

其中 css theming 的部分就可看到 CSS 帶來的特殊處。如同下面影片:




Hello World


接下來就來寫個簡單的 GKT 3 and CSS 的“你好世界”吧!在 Ubuntu 13.04 的環境下需安裝:

$ sudo apt-get install gir1.2-gtk-3.0 

程式如下,執行畫面類似 demo 裡的 CSS accordion。



Document


若是第一次使用 GTK 3 的朋友們可以先從這份 GTK 3 tutorial 開始看起。若是已經熟悉 GTK 開發的朋友,可接接產生 API reference 來看,產生方式如下:

$ sudo apt-get install yelp yelp-tools libgirepository1.0-dev libgtk-3-dev
$ g-ir-doc-tool --language Python -o ./output_dir /usr/share/gir-1.0/Gtk-3.0.gir
$ yelp ./output_dir/index.page

執行畫面如下:

2013/06/13

clutter-gtk 現況與發展


最近在嘗試如何用 GTK+ 做到視窗元件的動畫。

說到 GTK+ 一開始一定去查查 cairo 有沒有好用的 API,後來查到了這篇,稍微看了一下只覺得是杯具。我的需求只是針對 GTK+ 元件,在 mouseover 時,做個 scale,transparent(alpha), translate 這類常見的特效,但那篇文章裡一看到還要實作 timer function,就沒力了。

接著又想到 clutter 可以用,就開始用 clutter-gtk 埋頭幹起,搞了一整天結果像這樣:



程式可在這裡找到。

但過沒多久,看到一則訊息,說 clutter-gtk 只是實驗性質的東西,未來不會再使用。做了好幾天的白工,杯具呀...

那到底該怎麼做視窗元件的動畫呢?可以試試 GtkCssProvider