google code-beautifer

星期二, 2月 24, 2009

用 Graphviz 畫工程科學說明圖

一般而言,工程科學說明圖是網路/樹狀結構但沒有很強的流程方向性的圖我用graphivz來畫,圖是網路/樹狀結構而且有很強的資料流程方向性用dia來畫。其他的我才用xfig來畫。

我覺得graphviz 最大的好處是自動編排。只要用文字編輯器把這些節點,聯接,文字相互關係...的.dot 描述檔寫好後。graphivz編譯會自動產生編排好的圖形。不用拿滑鼠在螢幕上移來移去。這在設計複雜的關聯圖形時很重要,而且這些文字大部可以在後面的流程回收。作過一次標準資料庫設計就知道了。剛開始學習要點時間,但是對理工科的人而言長期的回收絕對划算。

Graphviz 編譯命令長的像這樣子
dot -Tpng foo.sql.dot -o foo.png
,除了png 外,也可以選pdf,ps, gif 之類的格式,或是不同風格的圖形編排,輸出成png 或ps 後可以在openoffice 文件裡當插圖用,用中文的話要記得用utf8輸入即可。

graphviz跟emacs 整合的話,工作會更方便,用emacs 編完Graphviz 的.dot
描述檔之後,直接C-c C-c 編譯。(這跟python是一樣的)C-c C-p 直接在 emacs裡預覽輸出圖形。下圖是在emacs裡預覽的結果。

安裝其實很簡單,在winodws 上也有 wingraphviz 可以用。我試過跟某個用winodws平台的人共同用graphviz 溝通開發資料庫,沒有問題。應用實例後面會另文介紹。

參考
用 Graphviz 畫資料庫設計圖

星期日, 2月 22, 2009

compiz-fusion下視窗佈景及標題欄主題設定

新裝的Mandriva 2009.0預設視窗在DVI 還清楚,但是在SOYO 24" LCD 的Dsub端子看不清視窗標半透明題欄的文字,我試了幾個gtk 的佈景都有問題,唯一可用的又醜的要死,而且視窗shade收起的動作不能用了,所以視窗裝飾要換。

所以執行CompizConfig Settings Manager (ccsm) :
到effects的Window Decoration 的 plugin 的 Command選項下,把compiz-window-decorator換成emerald 或gtk-window-decorator
但其實compiz-window-decorator預設就是用 gtk-window-decorator,gtk-window-decorator 可以使用Cairo Window Decorations或Metacity Window Decorations,預設就是用 Metacity 。

這些細節平常是藏起來的,但是可以用 gconf-editor(組態編譯器) 去改gwd(GTKWindowDecorator)
apps -> gwd
有組態編譯器可以用的話就不要用 gconfpref ,有些gnome選項會看不到(比如geditor-2的編碼)。
我初步試驗的結果,把Metacity Window Decorations關掉(也就是應該會切換成Cairo Window Decorations),但還是沒辦法啟動視窗shade收起的動作,所以最後還是得乖乖用emerald 來管視窗裝飾才成。emerald theme manager 一次不能預覽太多不同theme,卡住的話把emerald theme manager 關掉再來即可。

視窗裝飾Blue_Satin的陰影稍多了些,Rezlooks-Graphite-1pxb 的設計很適合工作,可惜我不喜歡他的配色,一時又沒時間把標題欄位的石墨色改掉,所以我最後選 IR Ora Blue(視窗內部元件外觀)跟Crystal-ICE的視窗裝飾,
要是不覺得右上角放大縮小圖像太小的話,Compiz-gilouche也不錯。

延伸閱讀
http://wiki.compiz-fusion.org/Decorators/Emerald

星期日, 3月 09, 2008

Gnome 桌面與設定

Gnome 跟 KDE是 Linux 上兩大桌面系統,我認為也許在某些方面實作上,Gnome比不上KDE ,但整體架構的前瞻性會讓Gnome 慢慢勝出。由昇陽的選擇可以作一個指標。Gnomeu 之前就跟alsa一樣有一個問題:一直改架構,到近期才穩定下來。在正體中文的翻譯方面,香港的網友出了不少力,可是一直未見台灣社會的重視,(或是說台灣社會漠視整體開放軟體的努力,對於香港主導的努力更漠視)。我希望從自己作起,一點一滴的把使用說明建起來,建立雙贏的基礎。

Gnome 桌面物件


Gnome 桌面包括了下列物件

  • 檔案管理員(File Manager) Nautilus 是整合的檔案管理員,並沒有特別在桌面顯示出來,但是桌面跟應用程式打開某位址的預設檔案管理員就是Nautilus
  • 面板(Panel):GNOME 桌面中的一個長條區域,可以配置各式面板物件,供各種存取系統/應用程式與功能表。可以滑鼠來使用。面板物件包括了:

    • 小型應用程式(Applet) ,互動式的小型應用程式,例如 音量調整,面板中預設會有下列 Applet來顯示對應的系統結構:
      功能表
      工作區顯示切換
      後面會再解釋對應的系統結構
    • 動作按鈕,執行特定gnome-desktop動作,如按一下"登出"此按鈕以結束gnome-desktop工作行程。
    • 啟動器,可以啟動一般的應用程式、執行指令或開啟檔案
    • 功能表(Menu) 列出系統裡能在 GNOME 桌面執行的大部份功能,主功能表的頂層除了包括「應用程式」功能表,可以存取標準應用程式及配置幾乎所有的選項外,頂層同時也包括了gnome-desktop命令的功能列表跟其他功能列表:
      「位置」功能列表:存取特定媒體位置上的檔案
      「系統」功能列表:存取系統指令功能表。
      在桌面上顯示功能表,有別於其他桌面系統,對GNOME 而言,這只是一個面板物件,所以可以把多個功能表顯示Applet加到面板上,但是都是對應到同一個內部功能表系統結構。Mandriva 提供三種風格:Gnome, KDE, Mandriva,功能表的排列顯示會有少許不同
    • 抽屜(Drawer)把一些同時要用的程式合在一起,可供一次同時開啟

  • 工作區(workspace)
    可將 GNOME 桌面分割成個別的工作區。可以指定 GNOME 桌面上工作區的數目,一次只能顯示一個工作區。我們可以指定某程式視窗在某工作區中工作。也可以切換至其他工作區,達成虛擬桌面的功能。可以透過面板物件的工作區顯示切換applet來預覽現在位於的工作區
  • 視窗(window) 顯示程式的內容,只有執行程式時才會顯示
  • 桌面(Desktop)位於所有其他元件的後方。除了提供顯示視窗外,我們可以將物件拖放到桌
    面上,如檔案瀏覽器的url,以供快速存取常用的檔案與目錄,或是某面板物件,以供快速啟動常用的應用程式。
  • 控制中心(Control center) 這個設定Gnome 桌面物件,並沒有在桌面特別顯示出來

要設置桌面物件,可以在桌面物件圖示上面按滑鼠右鍵來叫出功能選單。

設定桌面應用程式尺寸



把特定應用程式視窗預設尺寸放大,基本上有兩個方式:在x視窗下設定或GNOME 桌面上設定。
考量到因為gnome-terminal 有可能會被其他文字命令叫用,所以我選擇在GNOME 桌面上的終端機啟動器裡設定。

終端機啟動的視窗放大(100x50)預設尺寸設定屬性command :
gnome-terminal --geometry=100x50+150+10

emacs 反正都是不是從GNOME 桌面面板就是從視窗程式(如krusader)叫用
所以就直接在在x視窗下設定,把這一行加入~/.Xdefaults:

emacs-gtk.geometry: 128x50

為什麼不是emacs.geometry: 128x50 ? 因為我在GNOME 桌面用的是emacs-gtk,emacs-gtk這不是叫用emacs 的script ,而是單獨編譯的程式,所以是針對emacs-gtk指定尺寸

設定位置捷徑


gnome 桌面上的"位置"如何設定

一些炫目的東西


Gnome 可以跑 Compiz 大部分的人都知道了。此外Gnome 也可以裝 screenlets去摹擬MacOS X上的 Widget或是Windows裡的Gadgets。不過真有這個必要嘛?Widget這樣的概念其實在gnome 裡用 appelet就可以做出來了,以生產力的觀點,screenlets 不會比 appelet 更有效率。我自己Applet 是開的蠻多的,在xorg出的ATI驅動下跑也還好,但可以感覺出跑compiz 比純跑x視窗慢。而且不管是Mac/windows/Linux ,我都聽到不少說法是 Widget把系統效能拖下水,比較compiz 裡視窗縮途預覽提高切換生產力的功能,我個人覺得目前screenlets是雞肋。不過喜歡新奇的人沒事是可以試試,有現成的rpm包好了。裝完screenlets跟指定好Widget,再把Compiz 裡desktop效果中的Widget Layer打開

提到Widget/Compiz這些炫字,就免不了有人會問有沒有像 MacOS X 的dock?有的。之前gnome-dock 的計劃好像死掉,可是有新的Avant Window Navigator(AWN)跟kiba 。我稍微玩了一下AWN ,覺得炫之外並沒有太多提高生產力的功能,就拿掉了。有些人覺得桌面最好像遊樂場一樣的,可以試試kiba。比Mac OS X的還炫。

延伸閱讀


星期一, 2月 11, 2008

人在曹營心在漢: linux 上使用windows系統的資訊

不要弄錯了,曹營是指M$,漢營是指Linux/BSD等開放OS環境,...我自己除非學校工作逼不得已外,都是用Linux 。這些資訊是給在windows 上處理跨平台開放軟體(如wine/cygwin/samba)的先驅看的,讓開發者windows上的開放軟體可以透過wine, virtual box 等在Linux 上執行。台灣有些人喜歡跑到別人個人網站偷看,毛手毛腳外還自以為奧步硬凹是真理,整個社會價值淪喪至此,只好諸事先打預防針。

察看一些關於windows 系統的資訊


Sysinternals web 是Mark Russinovich and Bryce Cogswell 在1996創立的,後來被M$ 買下來。有很多M$隱藏的系統內容,所有人現在都可以藉由這些工具一窺,如
Process Explorer v11.04 By Mark Russinovich
AutoRuns for Windows v9.01 By Mark Russinovich and Bryce Cogswell
LiveKd v3.0 By Mark Russinovich
Sigcheck v1.4 By Mark Russinovich
FileMon for Windows v7.04 By Mark Russinovich and Bryce Cogswell

開機執行程式


msconfig可以在開機時取消一些不想要啟動的程式。(Win2000 沒有提供,可以
拷貝 Windows 98 或 XP下 的這個程式到 winnt\system32\下用 開始 -> 執行 ->
輸入 msconfig 來執行。

其實也可以直接用 regedit去改(有點像Linux 下的 /etc/ 跟 /proc)。比如
HKEY LOCAL_Machine ->SOFTWARE -> Microsoft -> Windows -> CurrentVersion -> Run

批次方式執行程式


Windows 很多所謂的"創新",基本上就是去Unix/Mac 上抄別人真的創新,所以當你發現怎麼內部顯示網路命令也是"剛好"叫 netsate時,...也就不用驚訝其實Windows也可以用批次方式執行程式,當然是比不上Linux 方便,不過勉強用用。用過DOS 的人大概都知道shell (window 2k/XP的cmd)可以執行.exe程式,比較少人知道.dll檔可以透過 Rundll32.exe和Rundll.exe來執行,(Rundll.exe是用來執行16位DLL檔案),有些木馬利用Rundll32.exe載入DLL形式執行,所以要確定所執行的Rundll32.exe是在%systemroot%\system32目錄下沒動過檔名的)

此外微軟出的PowerShell加了不少功能(需要裝 .NET Framework Version 2.0)。
不過呢光下載就需要通過WGAPluginsatall.exe 驗證。要是哪一天Linux 上能夠透過wine 能來作驗證就太好了。

系統服務


不該開的系統服務全關掉。如CDBurnerXP跟Nero Buring ROM 都不用 IMAPI,可以考慮設manual。

RegSeeker個人免費使用,可以來找一些Registry 相關資料

延伸閱讀


http://www.annoyances.org/ 這是鼎鼎大名的 winodws annoyances網站
http://longtx.no-ip.com/ 這個網站有一些中文winodws的系統資訊

星期三, 2月 06, 2008

中文頻率最高的前100個詞

下面的資料是來自「中央研究院平衡語料庫詞集及詞頻統計(Word List with Accumulated Word Frequency in Sinica Corpus 3.0)」。這跟Big5 產生的年代已經有一些距離了。

可是我很好奇,會不會有些字即使後來使用頻率居上,比如王建(火宣),陶(吉吉),...但是受到電腦編碼下Big5 的影響,而在語料庫裡永不得翻身?其實光這點在學術上就很有得爭論。但關於這樣的問題,我一時是無法回答的,因為Sinica Corpus 不公開對外開放。要的人除了要花一筆錢外,使用上還有諸多限制。

不管是作gcin/linbchewing 輸入法的基礎,或是作中文 IR stop word list ,這些是很基本的資料,開放出來對政府機構其實也就是少收那一點錢,比起民進黨政府沒有效用的灑錢斷交的種種動作而言,實在是九牛一毛,可是對台灣整體的科技跟帶動的經濟都會有強勢的影響。台灣還在關起門自己搞之時,可是美國跟大陸已經在中文自然語言相關的研究上急起直追了,令人感嘆。

詞類標記 -- 依據中研院詞庫小組所架構的分類系統(參見原文)
詞頻 -- 在語料庫中出現的次數
累積頻率 -- 照詞頻排序至此詞的累積頻率(100為總頻率和)。

詞項 詞類 頻率 累積頻率
的 DE 285826 5.82
是 SHI 84014 7.53
一 Neu 58388 8.72
在 P 56769 9.88
有 V_2 45823 10.81
個 Nf 41077 11.64
我 Nh 40332 12.47
不 39014 13.26
這 Nep 33659 13.95
了 Di 31873 14.59
他 Nh 30025 15.21
也 D 29646 15.81
就 D 29211 16.40
人 Na 24269 16.90
都 D 20403 17.31
說 VE 19625 17.71
而 Cbb 18452 18.09
我們 Nh 18152 18.46
你 Nh 17298 18.81
了 T 15958 19.14
要 D 15955 19.46
之 DE 15893 19.78
會 D 14066 20.07
對 P 13944 20.36
及 Caa 13758 20.64
和 Caa 13585 20.91
與 Caa 13445 21.19
以 P 13172 21.45
很 Dfa 13013 21.72
種 Nf 12263 21.97
中 Ng 12231 22.22
的 T 11580 22.45
大 VH 11577 22.69
能 D 11125 22.92
著 Di 11026 23.14
她 Nh 10776 23.36
那 Nep 10740 23.58
上 Ncd 10619 23.79
但 Cbb 10242 24.00
年 Nf 10127 24.21
還 D 9698 24.41
可以 D 9671 24.60
時 Ng 9565 24.80
最 Dfa 9416 24.99
自己 Nh 9069 25.17
為 P 9026 25.36
來 D 8992 25.54
所 D 8873 25.72
他們 Nh 8818 25.90
兩 Neu 8692 26.08
各 Nes 8651 26.26
上 Ng 8650 26.43
可 D 8508 26.60
為 VG 8369 26.77
或 Caa 8317 26.94
好 VH 8304 27.11
等 Cab 8070 27.28
又 D 8037 27.44
將 D 7858 27.60
後 Ng 7752 27.76
因為 Cbb 7592 27.91
於 P 7395 28.06
由 P 7344 28.21
從 P 7303 28.36
更 D 7298 28.51
被 P 7272 28.66
才 Da 7266 28.81
已 D 7256 28.95
者 Na 7221 29.10
每 Nes 7207 29.25
次 Nf 7087 29.39
把 P 7024 29.54
三 Neu 6954 29.68
什麼 Nep 6729 29.81
問題 Na 6683 29.95
其 Nep 6667 30.09
讓 VL 6624 30.22
此 Nep 6599 30.36
做 VC 6597 30.49
再 D 6563 30.62
所以 Cbb 6529 30.76
只 Da 6521 30.89
與 P 6519 31.02
沒有 VJ 6510 31.15
則 D 6476 31.29
台灣 Nc 6414 31.42
卻 D 6388 31.55
地 DE 6329 31.68
並 Cbb 6171 31.80
位 Nf 6015 31.92
得 DE 5969 32.05
想 VE 5898 32.17
去 D 5748 32.28
呢 T 5577 32.40
學生 Na 5523 32.51
表示 VE 5504 32.62
到 P 5468 32.73
公司 Nc 5421 32.84
將 P 5365 32.95
如果 Cbb 5336 33.06