2007/10/30

[Programming] GCC: Stack Smashing Detected!

一整個疑惑中,今天在抓我寫的 osd 的程式的 bug 的時候,發現執行時會回應:
*** stack smashing detected ***: ./gtkosd terminated
已經終止

這種訊息出來。

去查這個訊息的原因,在 starryalley 的 blog 底下看到可以加上 -fno-stack-protector 就可以看到出問題的行數。

然而... 我一加上去,我的程式就很正常的運作了。

="=?a) 這是怎麼回事?

2007/10/29

[Programming] 記憶體配置檢查工具

之前有看過 Fred 的 blog ,有看到一篇寫(malloc)檢查的工具,剛剛遇到問題才想到要去找,找了半天沒找到。(殘念)註1

不過 wilson 這時給我一個dmalloc 的介紹,好像還蠻有用的。 嘿嘿。

後來 google 了半天才找到這段 bbs 上的文章:
daddy (daddy) said:
嗯...何不先試試MALLOC_CHECK_和MALLOC_TRACE?

在執行程式前, 先export MALLOC_CHECK=1, 就會啟動glibc memory management的debug
機制,任何會segmentation fault的地方都會被glibc擋下來, 並秀出error的部分。
MALLOC_TRACE則是用來追memory leak的,會把heap usage log到指定的file。
這二個玩意兒的詳細用法請參閱GNU C library manual。
當然啦, 前提是你們用的是glibc不是uclibc :p



原文手冊在這裡
簡中也有相關的說明:

設置環境變量MALLOC_CHECK_。
若將MALLOC_CHECK_設置為0,則在檢查到錯誤時不作任何提示;
若將MALLOC_CHECK_設置為1,則在檢查到錯誤時打印一條信息到標準錯誤輸出(stderr);
若將MALLOC_CHECK_設置為0,則在檢查到錯誤時直接調用abort()中止程序;

--
註1: 這個時候才會覺得黑米其實蠻好用的。因為我的書籤都亂放。(foxmarks+google+黑米)不過這不是重點啦

2007/10/23

[Linux] 字型不要裝太多....

說實話,我是一個很貪心的人。先前在做 UNLiu 字碼對應表的時候,裝了蠻多有的沒有的字型,像什麼 lao (老撾文) Thai (泰文) 全都裝了上來。這樣在做對應表的時候才不致於看不出來字碼的長像。

然而 這些如果是在 xxxx.ttf 檔,用 /usr/local/share/fonts/ 之類的資料夾裝在一塊兒,然後下一個 fc-cache f 就算了。偏偏又不是這麼簡單就可以的。

apt 底下的 ttf 包裝在 post inst 之後會做 fc-cache regenerate 的動作,所以在網路昇級一堆 ttf 的包裝的時候,你就會看得到一些「奇景」:

正在設定 ttf-oriya-fonts (1:0.5.0-0ubuntu1) ...
正在安裝新版本的設定檔案 /etc/defoma/hints/ttf-oriya-fonts.hints ...
No CIDSupplement specified for Dotum-Regular, defaulting to 0.
No CIDSupplement specified for Batang-Regular, defaulting to 0.
No CIDSupplement specified for KochiMincho-Regular, defaulting to 0.
No CIDSupplement specified for KochiGothic-Regular, defaulting to 0.
No CIDSupplement specified for KochiGothic-Regular-JaH, defaulting to 0.
No CIDSupplement specified for Headline-Regular, defaulting to 0.
No CIDSupplement specified for Gulim-Regular, defaulting to 0.
No CIDSupplement specified for KochiMincho-Regular-JaH, defaulting to 0.
Regenerating fonts cache... done.

正在設定 ttf-punjabi-fonts (1:0.5.0-0ubuntu1) ...
正在安裝新版本的設定檔案 /etc/defoma/hints/ttf-punjabi-fonts.hints ...
Regenerating fonts cache... done.

正在設定 ttf-tamil-fonts (1:0.5.0-0ubuntu1) ...
正在安裝新版本的設定檔案 /etc/defoma/hints/ttf-tamil-fonts.hints ...
Regenerating fonts cache... done.


有幾個 ttf 包,就做幾次 fc-cache -f

問題是這個 fc-cache 的更新動作,每次至少要花上一兩分鐘才罷休...
而且愈多 ttf , re-generate 的動作就愈久。

林老師勒... 不能一次解完所有的 ttf 檔案,再來重做 fc 的 cache 一次就好了嘛?

更.... 我裝了 20 個... (是要等到什麼時候啊?)

2007/10/22

[Linux] ubuntu 7.10 正式推出

Linux toy 有報導過了 Ubuntu 7.10 正式推出的新聞。 也寫得蠻清楚的相關的細目,包括官綱上面有提到的更新的方式

不過我還是蠻愛翻譯一下的,畢竟還是中文比較順眼:
(註: 以下圖片直接從官網連過來)
1. Ubuntu Dekstop 的更新方式:


  1. 點擊 update manager

  2. 按下 check 做更新 package.list 的動作

  3. 如果有更新沒做,請按下 install update (安裝更新) 把一些還沒有更新的套件先更新完

  4. 如果有新的 distro 更新可以做,會像這樣提示訊息出來:


  5. 剩下的,根據營幕上的指示做完更新就可以


2.Ubuntu Server 版本更新方式(其實所有的版本應該都可以按這個方式做更新就可以):

  1. 先做 sudo apt-get install update-manager-core
  2. (更新 update-manager-core 這個套件
  3. 接著做 sudo do-release-upgrade



3. 從 CD/DVD 上面做更新

  1. 下 alternative cD 的 iso 下來,把它燒成光碟 (慢速燒比較保險)

  2. 先把光碟放進去

  3. 在BIOS 選 Boot From CDROM /開機後選 " upgrade from CDROM " 的選項

  4. 根據營幕上的指示操作

  5. 進來後,可以下到 console 的部份執行:

    • gksu "sh /cdrom/cdromupgrade"

      或在 Alt+F2 下 kdesu "sh /cdrom/cdromupgrade"



不過更新完之後,我的像 oxim/fvwm-crystal 之類的很多改過的東西都不能用了...
記得先備份一下。

[軟體] Better Gmail

六月介紹過 Better Gmail 這個軟體,原本的特點就不錯了。

現在附上一個新的功能,讓你可以在不用點進去的情況下,就直接看到信件內文:


作法是在 INBOX 的信件標題上面按右鍵就可以。

應該還有些功能沒完成,譬如繁中的翻譯就很差.... SentMail 還沒 okay 之類的。

不過還可以接受就是,在這裡下載安裝,它是 Firefox 的 extension 。

2007/10/21

[軟體] windows 字型美化軟體

DK 那邊看到的。簡單的說,就是會讓你的字體有真的清楚的感覺。 (像在 Linux/MacOS 上面的 anti-alias 的感覺。)

然後,可以使用王漢宗的粗黑體繁 字體來代替新細明體 (不過有漏字)
有正版 微軟正黑體 授權的也可以用這個來代替。

GDI ++ 下載點在這裡
正黑體別找我要,王老師的字體到沒什麼問題。

更新:
Vista 上的 GDI

2007/10/12

[軟體][Linux] BT Download Client

ctorrent是很好用的 Linux 上的 BT Download 客戶端軟體。不過它有一些軟體上的問題沒解決,這邊是另外一個開源軟體的義士寫出來的 ctorrent-dnh 軟體。 看起來應該比 ctorrent 好用很多。

2007/10/08

[Linux] Ubuntu 上的 fc-cache write failed 問題

解法在這裡 ,其實我只是想做個 bookmark ,但是懶得上 hemidemi 而已。

順便加加它的 pagerank 也好? :)

2007/10/07

[軟體] Inkscape 0.45.1 有問題 (2)

上次有提到 inkscape 中文字體的使用有問題之後,今天又發現一個很明顯的 bug: 快捷鍵有問題。

版本: inkscape200707281318.package (就是我上次用的 autopackage 的版本)
狀況形容: F1~F4 都沒有問題,輪到 shift + F6 畫點就有問題...

剛剛試 inkscape200709061136.package 也是不行的。

不知道是怎麼回事,不過記得我公司用的 subversion 的版本是沒有這個問題的... 所以等一下再來試試看 subversion 的版本好了。

--
附上連結:
autopackage
svn:
svn co https://inkscape.svn.sourceforge.net/svnroot/inkscape/inkscape/trunk inkscape

[Security][軟體介紹] Firefox Master Password Recovery

firefox 是蠻多人愛用的一款瀏覽器軟體。它相對於 IE 而言,很安全也很好用,所以有蠻多人會使用它的 password manager 來管理存在 firefox 裡面的一些密碼。

然而根據這個軟體的介紹,這些密碼是可以透過暴力破解(就是寫個程式一個接一個試密碼)來達成目的。

好吧... 天底下本來就沒有絕對安全的事情,就當做如果你忘記了 firefox 的 master password 還有個軟體可以幫你找回密碼好了。 XD

--
照我說,自已的電腦(Desktop)還是小心點,別讓別人碰觸,以免橫生意外。

[Security][軟體介紹] SSHatter

譯稿:

SSHatter 是一個 SSH 暴力解密碼的軟體,它使用了多重執行緒的概念在這個軟體裡面,所以可以大幅減少解開密碼所需要的時間。並且由於軟體是用 perl script 所譔寫,所以可以在多個作業平台運行無誤。

原文參照


// 沒有用 firewall , iptables 擋的機器一直都要小心的注意...被破只是時間問題而已。

[Programming] 推薦"建立良好的程式寫作風格"文章

Fred 最近換了 blog 寫作的地盤,所以我有機會去回顧他以前寫的文章。 我大概算是這半年才開始當他的 blog 讀者的。由於自已不是本科出身,所以在一些很基本的東西上面會很需要人家指導。

他的建立良好的寫程式風格這篇文章裡有提到一些程式寫作上的參考連結: Linux 核心程式寫作建議

Linus Torvalds and other kernel programmers have written a short document that details some of the kernel programming rules. // 這篇文章主要是 Linus Torvalds 跟其它的 key programmer 寫下來的規則。
像是"{} " 的擺放方式﹑ TAB 的使用﹑命名方式﹑function 的使用等等,這些在 code 的易讀性上面都會造成一些問題。而易讀性正是決定你的 code 能否由下一個 programmer 使用,或著說, reuse 的可能性的一個關鍵點。

十分建議初學者,還有像我這樣的半調子再回頭去閱讀。

2007/10/02

[軟體][Linux] 鍵盤側錄程式 LKL

lkl是 Linux 上面做鍵盤側錄的程式。
用起來蠻方便的。不過就是 keymap 裡面有一個小 bug . (space 的地方是 '' 不是 ' ')
ascii[0] 是 0 不是 32 ,所以要小修一點點而已。

之所以找這個東西是因為需要重作按鍵音的部份,做程式碼的參考。
跟什麼壞事沒有關係。

更新:
補上actkbd這個軟體好像比 lkl 還好用一點。要做按鍵音更方便了點。
(不過 performance 沒有想像中的好)

[軟體] Pidgin 接連推更新

pidgin 是 Linux Desktop 上的 msn/gtalk/yahoo IM 軟體的代表。不過自從改了名字之後,更新和版次就開始一直跳個不停。這個星期又看到官方首頁上面有寫著:
2.2.1 is out. It fixes a crash that can be triggered remotely on MSN in 2.2.0. If you are using 2.2.0, you should upgrade immediately. See our security advisory for details.


中譯如下…
2.2.1 出了了,它修正了 msn 在 2.2.0 裡面可能會因為遠端導致 crash 的情況。如果你是使用 2.2.0 的使用者,我們建議你即刻更新。

嗯...還是不要這麼密集比較好吧?

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...