ThinkPad X200s 是12吋寬螢幕 (1280x800),以正常方向看電子書時,略顯狹窄。如果旋轉90度的話,就可以直立閱讀電子書,剛好可以全頁顯示16開到32開(A5~A6)的書籍頁面。
基本上,螢幕旋轉是顯示器本身就有的功能,不成問題。但是旋轉後的鍵盤方向鍵與小紅點方向並不會跟著轉向,在操作上就會礙手礙腳了。 X200s 的螢幕和鍵盤是一體的,旋轉螢幕後,鍵盤與小紅點的配置方向也會跟著旋轉。但是它們的操作軸線卻沒變,所以我們在操作時就會碰到手眼不協調的狀況。除非我們像金庸筆下的周伯通,可以一心二用、雙手互搏,心中想著游標要向上時,左手可以向右或向左推小紅點。
昨天在公司的小組會議中,我和同事們討論到 JavaScript 呼叫本地桌面程序的問題,提到關於 JavaScript 跨網站執行的關卡。近年來,隨著 jQuery 等 JavaScript 框架的普及,降低了 Ajax 程式的開發門檻,但也同時讓人忽略了一些更為基礎的知識。由於 jQuery 等框架主要利用 XmlHttpRequest 實現 Ajax 能力,但 XmlHttpRequest 在使用時也受限於瀏覽器的相同網域策略 (The Same Domain Policy),所以不允許載入不同網域的文件。但是,要解決這個關卡其實只需要應用到基本的 Ajax 技巧。
所謂 JavaScript 跨網站執行的關卡只作用於 XmlHttpRequest 個體上。在 Ajax 中,我們還有很多非同步機制可以載入與執行來自不同網域的 JavaScript 程式。這些技巧, Google 在用,hackers 也很常用。
ThinkPad 系列筆記型電腦最大的特色就是鍵盤上的中原一點紅,俗稱小紅點的 TrackPoint 指標裝置。除了不能做到多點觸控之外,其他方面它能做得比觸控板更好。例如拍一下小紅點等於滑鼠鍵點擊一次、模擬中鍵捲動。只是在 Ubuntu 上需要做一些校調,才能使用這些功能。
關於小紅點的操作方式,可以參考《(原創) 如何使用ThinkPad的TrackPoint(小紅點)?》。只是該篇文章講的是 Windows 下如何啟用拍擊小紅點與中鍵捲動功能。
2010-09-03: 更新 Ubuntu 10.04 相關內容。
我在過年前買了生平第一台筆記型電腦。打從一開始,我就不打算使用 Windows 作業系統,所以我特地只選擇不附OS的機種來看。而我的第二個選擇偏好是,不要觸控板。我一點都不喜歡用觸控板控制指標,又不想要多帶一個滑鼠,在這個條件下,我唯一的選擇就是 TrackPoint (小紅點),它可以讓我的雙手完全不用離開鍵盤,就能完成所有操作。雖然不附OS的機種很少,又要滿足第二個偏好更難,但非常幸運地,在那極少數可選擇的機種中,偏偏就有滿足我偏好的機種,那就是 ThinkPad X200s 。俗稱小黑。
Linux 延續 Unix 風格,傳統上使用 /etc/network/interfaces(本文以 network/interfaces 簡稱之) 管理網路介面設定。不論那種 Linux 散佈版本都支援這種設定方式, LPI 檢定也是考這一招。而 Ubuntu 近來在桌面環境下引進了另一套網路介面設定管理機制,即 NetworkManager 。本文旨在說明 NetworkManager 的使用要項。
我今天看到洪朝貴教授的 大學不敢談的資訊安全問題 ,文中提到大學線上簽核系統,因為使用了 ActiveX 的控制項,以至於自我侷限於 IE6、IE7 等舊版瀏覽器才可利用。當 Google 被駭事件中,許多駭客利用 IE 的重大安全漏洞侵入許多系統之際,這些自我侷限的線上簽核系統,也正把全校師生的隱私暴露在駭客的眼前。
然而大學資訊系統自甘成為駭客犬馬還不是最危險的。我昨天才在 如何在Firefox上使用自然人憑證系統 中說內部政的自然人憑證系統也是限用 ActiveX plugin ,所以也同樣把自己暴露在IE漏洞之中。內政部自然人憑證系統的牽連影響範圍之廣,遠非小小的大學資訊系統所能相比的。當內政部自然人憑證系統這麼大的系統都在幫駭客扶植入侵民眾電腦的跳板(IE瀏覽器)時,小小的大學資訊系統又算得了什麼呢?
再看到 iThome 的報導 《臺灣已有企業遭受IE漏洞攻擊》提到: 中華電信資安監控中心則發現,臺灣身處複雜的政治環境中,早就是許多駭客針對性攻擊的鎖定對象,對於此次來自中國的攻擊,臺灣使用者並無法倖免
。 現在,除了家境貧困只能用 Ubuntu 免費系統的理由之外,我們又多了一個理由寫信給馬總統要求修改內政部自然人憑證系統,那就是「防止中國駭客侵害台灣人民的隱私」 。各位鄉親,不論你是藍是綠,都要快點寫信了,這就是愛台灣啊。
附帶一提,大多數技術人對隱私權這種政治議題向來是不當一回事的,見雲端運算與自由主義的隱憂。
公司前一陣子部署在公務機關的 thin-client 系統,有使用者反應不能用自然人憑證晶片讀卡機。因為我們部署的系統是用 Ubuntu 桌面加上 Firefox 瀏覽器。而內政部的自然人憑證系統晶片讀卡機,要安裝 ActiveX plugin 才能使用。基本上, ActiveX 只有微軟自家的 IE 與 Windows 系統才能使用。於是公司就在討論 Firefox 要怎麼解決這個問題。
然而,技術人討論問題時的思考慣性就是只在技術手段上打轉。但是那並不是解決這個問題的最佳途徑。解決資訊系統問題的手段,不完全是靠技術手段,有時候也需要政治手段。說句很正經的玩笑話,要讓政府單位的自然人憑證系統支援非 IE 瀏覽器最快的手段,是寫信給馬總統,就說我家在僻遠鄉下,家境很窮,電腦用二手的,作業系統只能裝UBUNTU,可是這樣就不能用政府機關的自然人憑證系統使用電子化服務。
內政部的自然人憑證系統只有 IE 能用這件事,對於資訊下鄉、消弭數位落差與資訊鴻溝,以及推動全面電子化政府的政策,都是種諷刺。這幾天又看到行政院研考會放話說電子化政府的下一階段要強化手機平台的支援,讓民眾透過手機完成現在電腦上相關電子化政府的服務。又說要擴大「資訊設備借用服務」,讓更多偏鄉居民使用網路與政府的電子化服務。當那些使用手機或是安裝非 Windows 系統的桌面環境使用者,連上政府網站,結果被系統說要安裝 IE 才能使用電子化服務時,不知會做何感想。
我現在需要撰寫一個 GTK 程式,它必須可以執行在 GDM 的登入畫面處。並且可以在我需要時顯示出來,在我不需要時隱藏。
我規劃透過 signal 與該 GTK 程式互動,控制它的顯示與隱藏行為。
要達成上述目標,最大的麻煩在於該把程式的執行指令放在何處?才可以讓它在 GDM 登入畫面處執行,又該如何在 GDM 完成登入工作後被關閉。
我因為工作關係,拿到了一台安裝 Moblin 系統的平板電腦樣機。試用了幾天後,我的感覺是,這 Moblin 其實不太 moblie...
Moblin 是 Intel 推出的作業系統,應用於其 Atom 處理器架構,例如小筆電、netbook、手持式設備(MID)等。官方網站位於 moblin.org。Intel 推出 Moblin 的目的,是基於市場行銷考量,他們希望吸引更多的廠商推出基於 Atom 架構的應用設備。Moblin 最早是 Intel 與 Ubuntu 合作開發,後來因為 Intel 堅持 Moblin 只能運行於 Atom 架構上,這點與 Ubuntu 的宗旨不合,所以兩者分道揚鏢。Ubuntu 自己推出 Ubuntu Netbook Remix (UNR)。Intel 則改用 Fedora 為核心,繼續開發 Moblin 。
iThome 報導《CIO趕快醒醒吧!IFRS要來了》,因為很多人以為IFRS轉換只是一個單純的會計課題:只要把一些試算表攤出來運算就可以完成。但KPMG的經驗發現,轉換當中需要大規模的IT系統改變、商業流程改變與人員的重新訓練。
「軟體程式追隨業務流程」。隨著企業的資訊化作業程度提度,有愈來愈多的企業,將他們的商業流程建立在資訊軟體之中。當 IFRS 將改變企業內部的商業流程時,勢必要更新資訊軟體內部的程式流程。所以 IT 部門在 IFRS 的轉換過程中,也是相當重要的參與者。
報導中提到「IFRS將是千年蟲之後,IT部門最大的挑戰」。儘管如此,若你問我資訊人員有沒有應付 IFRS 的標準做法的話?我會回答「沒有」。 IFRS 是一項會計制度的變革,而不是一項軟體技術的變革,它改變的是企業的商業流程。由於每個企業都有不同的商業流程,因此我們難以期望資訊業界會出現應付 IFRS 的標準做法。但從 IFRS 是會計制度這一點,倒是可以看出哪些企業用的商業軟體將會被捲入 IFRS 的轉換過程。大到 ERP, CRM ;小到進銷存系統(POS)。都將配合 IFRS 修改。ERP 很貴,大多數中小企業沒有使用。但是 POS 的用戶就多了。MIS 人員可要做好心理準備了。
ZDNet 報導《開源碼爭議 微軟撤下Windows 7下載工具》,詳情請看 Rafael Rivera 《
Microsoft lifts GPL code, uses in Microsoft Store tool》。
對於這個問題,微軟的反應相當快速。相關回應發佈在《Update on the Windows 7 USB/DVD Tool》。在該文中,微軟承認他們檢視 Windows 7 下載工具(WUDT)後,確實包含了 GPLv2 授權的源碼。並承諾在下週起,依據 GPLv2 授權的規定,提供使用者取得 Windows 7 下載工具的源碼。
微軟指出,問題發生在負責開發 WUDT 的第三方廠商 (原來微軟也會找外包商開發軟體)。而微軟並未將第三方廠商負責的源碼內容,納入微軟內部的程式碼檢視流程中,以致於微軟未能立即發現第三方廠商使用了 GPLv2 授權的源碼。
我不知道微軟到底是找了哪裡的第三方廠商,但猜想其規模應該不會太小。但是這等規模的第三方廠商,也會「違法」使用 GPL 授權的軟體。由此可見,就算是國外,仍然有許多軟體開發廠商與軟體開發人員,還是不了解自由軟體與開放源碼授權證所代表的法律意義。
... also taking measures to apply what we have learned from this experience for future code reviews we perform.
Update on the Windows 7 USB/DVD Tool
此外,對大型軟體開發公司而言,這也是個重要的經驗。源碼授權管理已經是不容忽視的工作。我在2008年的IBM開發者大會的議程中,就聽到源碼授權管理工具的議題,顯見相關問題在兩三年前就已經受到關注了。
有鑑於政府近年提倡開放源碼,以及國內愈來愈多的軟體開發公司使用自由軟體與開放源碼的工具與程式,這起事件,值得借鏡。所謂「免費使用」只是對於一般最終用戶的說法;對軟體開發人員而言,還需要加強正確的自由軟體與開放源碼的法律觀念教育。
公司的專案完成了第一期,舉行了一個成員會談,檢視專案過程中遭遇的狀況與可改進的內容。在會談中,我談的主題就是我在《建置風險的故事》中所談的內容。除此之外,我也展示了個人在進行專案時使用的一些小工具與功能測試案例。
我展示這些小工具的目的,是為了說明在整個專案開發過程中,除了正式的工作項目之外,還有很多瑣碎的事務。為了幫助我們處理這些瑣碎的事務,我們應該養成寫一些小工具去完成它們的習慣性,這也是為了讓這些瑣碎的、不在工作項目之內的事,能夠被自動化處理,從而幫助我們達成持續整合(Continue Integration)的目標。
這是基於實務經驗所發展出的一種技巧。在《軟體建構之道》一書中,作者提到當一個程序員要進行一項預估工時約5小時的工作時,他們通常會用4個半小時去寫一個工具,再以這個工具使用半小時去處理那件工作。
不幸的是,議題的焦點很快轉移到了我用的語言上了。因為我並不是使用 Java 語言去寫這些小工具。
今有 A, B 兩台主機。 A 主機的服務功能,使用 PostgreSQL 儲存資料。 B 主機平時負責另一項工作,但是它也有啟動 PostgreSQL 。現在我希望每日定期將 A 主機的 PostgreSQL 資料同步備份到 B 主機的 PostgreSQL 中,以便 A 主機故障時,可以立刻將服務工作轉移 B 主機上。
我將使用 ssh 搭配 PostgreSQL 的 pg_dump/pg_restore/psql 工具實現這項需求。
Using ssh to backup PostgreSQL database to remote host and restore in remote host.
有許多工具可以幫我們打包 deb ,但是最基本的工具是 dpkg-deb 。只要了解 dpkg-deb 的用法,甚至可以自行開發一個 deb 打包工具。
下載一個既有的套件 deb 作為範本修改,可以省掉許多摸索的時間。
從我退伍至今,我待過四間民營企業。在職期間,他們對我都有一個共通的評語,那就是「觀念先進」。我不曉得我的觀念到底先進在哪?我談的都是國外三、五年前就在實踐的項目,甚至快變冷飯了。但就結果而言,這句評語顯然不是什麼好兆頭。
這四間企業中,其中一間是百貨流通業,我擔任資訊系統管理人員(MIS)職務,這也是我待最久的職務,大約兩年時間。這個職務不太需要我動手寫程式,原則衝突最少,所以我一直待過景氣不佳,公司裁員為止。
其他三間企業的主要業務都是軟體開發。第一間,通過 CMMI lv2 認證。我提了不少意見,他們覺得我觀念先進。然後我待滿三個月的試用期後主動求去。第二間,通過 CMMI lv3 認證。我待得還算愉快,他們也覺得我觀念先進。但是後來因為 CMMI 的緣故而被資遣。我覺得專案經理不按 CMMI lv3 的程序隨意變更時程,專案經理覺得我藉故拖延,所以被資遣。不過還是有兩件外包案丟給我做。若加上離職後接下他們外包案的時間,我算待滿一年。
現在待的這間公司,基於前兩間公司的經驗,我在工作中算是相當沈默了。不過上禮拜進行新進人員試用期末面談時,他們還是覺得我觀念先進。聽到這句評語,我心中一驚,這真不是個好兆頭。觀念先進這句明話的背後,代表的或許正是「過於理想、不切實際」。雖然我覺得我談的事,在國外已經有許多實踐方法,但在國內還是「過於理想」的事。不知道這間公司還能待多久,希望能讓我混到過年後。有錢好過年嘛。
在很久很久以前…,天之聲「等等,不是才上個月的事嗎?」 嗯,說故事嘛,慣例是要用「很久很久以前」開場的。
有一件軟體開發專案,在開發過程中,發生了許多的問題,導致測試與部署時期一再出錯。
而那些問題,有一大部份都可歸類為「建置風險」。
建置風險所帶來的重複性,會嚴重削弱我們的軟體開發生產力。但建置風險總是如野草一般,在不起眼的裂縫處萌芽,除之不盡,燒之不絕。這類的問題點,不在架構設計與程式碼內部,而發生在程式外部的運作環境。經常被忽略,而且副作用會延遲發生,往往到部署階段才出問題,導致驗收延期。
當我們試圖從資料庫中查詢某個欄位的絕對值時,我們有兩種途徑。第一種是自定新的 Hibernate UserType ,再透過 HQL 查詢。
第二種則是利用 SQL abs() 函數,透過 SQL 查詢。
自定新的 Hibernate UserType 並不太難,僅需實作 UserType 介面,再套用一個範例來修改即可。
範例可參考 https://www.hibernate.org/388.html 。
新增內容: Database Row 簡介。
Schema-Database 是一個針對小型應用系統或嵌入式系統所設計的抽象資料庫存取層函數庫。
它提供一組 Schema class 用於組態資料庫表格與欄位,強化資料內容的型態檢查、格式檢查、解碼與編碼動作。
同時設計了兩種 class, Database_Query 和 Database_Row ,提供基礎的 Active Record 與 ORM 能力。這兩種 class 運用 PDO class 與 Schema class ,簡化資料查詢、存取和資料內容檢查動作。
我已經將此軟體放置到 Google Code 上。專案入口: PHP Schema and Database library。