多顯示器的場合,如何將視窗呈現在指定的顯示器處

本文說明在多顯示器併用的場合中,X Window 環境如何得知顯示範圍尺寸、實際啟用的顯示器數量、以及將視窗放置在指定的顯示器。

基本概念

在 X Window 系統中,對於顯示功能定義了幾個專有名詞,分別是 Display , Screen, Monitor, Window 。 它們之間的關係是 Display 包含 Screen ,Screen 包含 Monitor 與 Window 。 Monitor 代表實際的顯示器,Window 則是負責與使用者互動的部件。 在這些專有名詞中,只有 Monitor 和顯示器硬體是一對一關係,其他都是抽象的軟體概念。

Innovate 2012 IBM 開發者大會記事

每年慣例的 IBM 開發者大會記事,今年台灣場是 8月28日。 活動當天,我有推一些照片。今天想到該整理到部落格上了。

活動主頁見此「Innovate 2012 IBM開發者大會」(當天的活動簡報已經提供下載了)。今年的活動主題是「Next, NOW!」。今年的主角不意外,「Next」就是指「雲端+行動」。

IBM開發者大會 Innovate 2012 台灣場開幕

Debian/Ubuntu and NVIDIA driver's video hardware acceleration

Debian/Ubuntu 系統與 NVIDIA 視訊晶片的視訊加速播放功能。

第一次發布日期: 2010-09-09
最近更新日期: 2012-09-26
適用的 Linux 散佈版本: Debian 6.0 與 Ubuntu 10.04 。
我使用的 NVIDIA 視訊晶片是 GeForce 8600 。

如果一流的管理人是獅子,那三流的管理人就是猴子

關於薪資問題,有人說「拿出香蕉只請得起猴子」。但我相信批評現在年輕人傲慢自負不願接受兩萬薪水的獅子總裁嚴長壽,絕對不會只付兩萬薪水給他手下表現最好的員工 (參見「年輕人消極待業 嚴長壽:傲慢、自負的態度怎有未來?」)。但是現實中確實也存在著把員工的努力表現視為理所當然,不論員工表現如何就是只付兩萬的老闆。

釣魚台與蒼井空

身為一個日本動畫愛好者,碰到這次的釣魚台事件,自然會有人問我還看不看日本動畫。 和我有相同處境者,也有著被所謂愛國人士質疑其愛國心的狀況。 老實說,這兩者根本不抵觸,我兩個都要。

碰到這種問題,只需要拿出「釣魚台是中國的,蒼井空是世界的」這則標語就足夠了。 這則標語用粗俗點的口氣來說就是「這片漁場是我的,那個女人我也要」。這話覇氣側漏了。 一為食欲,一為性欲。「食色性也」,這兩種欲望並不互相抵觸,我兩個都要不行嗎? 根本沒必要選一邊。

釣魚台是中國的,蒼井空是世界的。蘋果動新聞(http://www.youtube.com/watch?v=zatdQ01nSSo)
圖片來源: 蘋果動新聞(http://www.youtube.com/watch?v=zatdQ01nSSo)

本來還想批批民族主義、團體主義的。這些人腦子很簡單,分不清各種本質與表象的差異。對於各種事物,他們的認知處理能力只能按照最顯著的標籤做出區分,標籤一樣的扎一堆。不過想想真要講的話實在太多,懶得說了。

gjs/gnome-shell 雜項筆記

gjs 相關的內容實在太散亂了。 一些不足以湊成單獨一篇文章的內容,我就統一放在這裡了。 目前有下列項目:

  • ARGV - 取得命令列參數
  • imports.gi.versions - 指定 GIRepository 資源版本
  • 執行外部程式 - 如果想用 gjs 寫 shell script...

gjs - To manage custom library (管理自製程式庫)

gjs 使用 imports.searchPath 屬性 (型態為陣列) 管理程式庫的資料夾。 因為那是一個陣列,所以用 push() 方法就可以往裡面增加程式庫資料夾。

加入資料夾路徑後,該資料夾與子資料夾內所有的 js 文件都會被載入。 文件名稱將成為 imports 的屬性名稱,而子資料夾階層可視為名稱空間。

COSCUP2012 twitter 記錄

我當天邊聽邊推文(#coscup2012),這裡是推文內容的備份,再加上一些後來才想到的內容。

當天議程內容,都有錄影並會放上 COSCUP 2012 網站。有興趣的自行觀看,我這就不談內容了。

賴桑的經歷與一般現象

幾位LZ既然在此高舉軟體業的旗幟,那就拿個實證給大家看看如何? 賴桑 回應

我沒碰過台灣高鐵哪麼大的案子,賴桑說的那幾個人我全不認識。 我只是個在log上抱怨的小員工,月薪比賴桑還低,別把我抬舉成拿旗子的。

不過賴桑說的事,牽涉到許多台面下的事,而且不是只存在於資訊軟體業。

用查表代替 switch - struct, union 與 enum 的應用

很久以前,我已忘了是在哪本書看到的事(或許不只一本書)。書中說使用 switch..case.. 的場合,大部份都可以也應該改用查表方式代替。 這句話的意義也含括了一句程式設計領域的名言,即「資料結構 + 演算法 = 程式」。

大多數場合,連續的 switch..case.. 或 if..elseif.. 只是不斷複製類似的程式片段。 這種文章結構,沒有運用資料結構觀念,就連演算法的部份也很粗糙,是很糟糕的程式碼。 而在改用查表方式的重構過程中,規劃資料結構建「表」,並設計「查」的演算法, 就自然而然地實踐了「資料結構 + 演算法 = 程式」這句話,也提高了程式碼的品質。

如何訂製 Linux X 視窗環境

以 Debian 6 與 Ubuntu 10.04 / 12.04 為基礎,說明如何訂製 X 視窗環境。 相關內容:

  • GDM
  • startx
  • Xsession
  • openvt - no GDM
  • OpenBox

Debian 6 如何增加系統啟動程式與指定順序

以往在 Debian 5 或 Ubuntu 10.04 中,我們使用下列指令所示範的內容,新增系統啟動程式:


# update-rc.d hello defaults NN 

其中的 NN 可以指定啟動順序,例如 90 。

但是在 Debian 6 使用此指令時,我們將發現 NN 不作用了。這是因為 Debian 6 現在參考 LSB (Linux Standard Base) 制定的「System Initialization」規範,以啟動指令稿內的 INIT 敘述區塊決定啟動順序,不再理會參數指定的數字。同時,Debian 6 也改用 insserv 指令取代 update-rc.d 。

『舟を編む』與『天地明察』

上個月到日本賞櫻時,晚上在書店稍微翻看了三浦しをん的『舟を編む』。 這本是日本「2012年本屋大賞」作品,故事主角的工作與興趣是編字典。 這讓我想起日本「2010年本屋大賞」的作品『天地明察』,那部主角的工作是編曆法。 不管是編字典,還是編曆法,在大部份人眼中,都是既枯橾又冗長,還必須長時間專注工作的事。

More about 舟を編む
Amazon.co.jp : 舟を編む
More about 天地明察
Amazon.co.jp : 天地明察

Debian 6 與 PulseAudio ~ 讓瀏覽器的 flash 在正確的音效設備上發聲

Debian 6 GNOME 桌面環境預設的音訊模組是 ALSA 。 它在大部份情形下都工作得很好,但是對於有電腦上裝有多張音效卡的使用者來說,不太方便。

以我的情形來說,電腦裝兩張音效卡是很平常的事。所以我有時候會根據我的需求,在播放媒體時切換音訊輸出的裝置。例如我需要指定瀏覽器看 Youtube 時從 A 音效卡輸出聲音,而影片播放程式則從 B 音效卡輸出聲音。 就像我在「使用 PulseAudio 命令列工具切換應用程式使用的音效設備」這篇文章中要做的事。然而 ALSA 在這一點上並不方便。