讓ThinkingRock輸出的PDF可以顯示中文

讓ThinkingRock輸出的PDF可以顯示中文


   
之前提到使用ThinkingRock來實現GTD的概念,雖說ThinkingRock實作了GTD的全部功能,但是對於中文的使用者還是有一點不太方
便,其中比較大的問題便是輸出PDF的部份。輸出的PDF檔案並無法正確的顯示出中文來,文中的中文字全變成了方框,這是因為內附PDF使用的字型沒有支
援中文字,可以透過增加字型來讓PDF檔案可以出現中文。在官網的FAQ中有提到如何為PDF報表新增字型,可以參考這裡。由官網的說明可以知道ThinkingRock是使用Apache FOP來產生PDF報表。
    如果對英文過敏的朋友,或是想知道一步步做法而已的朋友,可以參考“为ThinkingRock的REPORT添加中文字体”一文。按此文一步步操作,即可以加入字型到ThinkingRock中以供PDF輸出使用。









(1)由于ThinkingRock只内置了Courier、Helvetica和Times Roman三种字体,我们需要添加一种汉字字体,获得字体,我用的是WinXP的仿宋字体simfang.ttf。


(2)
生成TRUE TYPE(.ttf)的Font Metrics
Files,在命令行状态下,进入ThinkingRock/lib目录下,使用命令“java -cp
{path}\fop.jar;{path}\avalon-framework.jar;{path}\commons-logging.jar;{path}\commons-io.jar
org.apache.fop.fonts.apps.TTFReader simfang.ttf
simfang.xml”来生成simfang.xml,这里{path}是fop.jar,avalon-framework.jar,commons
-logging.jar,commons-io.jar所在的路径,一般在ThinkingRock的lib子目录下,输入时还要注意这几个JAR文件
名字的一致性


(3)复制simfang.ttf以及simfang.xml到ThinkingRock所在目录下的resource/fop子目录里;


(4)编辑resource/fop/目录下的fop.xconf,在<fonts></fonts>段内增加几行,如下:


<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">


<font-triplet name="Simfang" style="normal" weight="normal"/>


</font>


<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">


<font-triplet name="Simfang" style="normal" weight="bold"/>


</font>


<font metrics-url="simfang.xml" kerning="yes" embed-url="simfang.ttf">


<font-triplet name="Simfang" style="italic" weight="normal"/>


</font>


至此,配置修改好了,打开ThinkingRock程序,在输出报告时字体选择“simfang”,PDF文件即显示正确的汉字。


更详细的说明参见How to add fonts for PDF reports






試著以simsun.ttc去操作,是可以讓PDF文件正常顯示出中文而不再只是方框而已。但是同樣的作法用在ukai.ttf(文鼎PL中楷Uni)
上,卻仍無法讓中文順利出現,原本呈現方框的中文套用上ukai.ttf後反而都變成透明,什麼都看不到了,但是使用PDF文件中的複製功能,可以順利的
將文字複製出來。可以知道文字是有順利加入到文件中,但是不知什麼原因而無法正確的顯示出來,如有遇到相同問題的朋友,可以先用simsun.ttc來試
試看在做法上是否有問題,但是似乎simsun.ttc這個字型版權並不是開放的,所以在使用上請小心。
    最後要提醒的是,fop.xconf檔案中的編輯,請小心位置,不要加錯地方,否則會徒勞無功的。加入的內容需注意加入的字型檔案名稱做適當的修改。以simsun.ttc為例,則內容應該如下
        <!-- simsun Font -->
        <font metrics-url="simsun.xml" kerning="yes" embed-url="simsun.ttc">

        <font-triplet name="simsun" style="normal" weight="normal"/>
        </font>
        <font metrics-url="simsun.xml" kerning="yes" embed-url="simsun.ttc">
        <font-triplet name="simsun" style="normal" weight="bold"/>
        </font>
        <font metrics-url="simsun.xml" kerning="yes" embed-url="simsun.ttc">
        <font-triplet name="simsun" style="italic" weight="normal"/>
        </font>

意紅色字體的部份,需視情況而加以修改的。當字型順利的加入後,還需設定在ThinkingRock的PDF輸出時使用的字體,設定的位置在
ThinkingRock主視窗的“Tools”==>“Options”==>“Miscellaneous”==>“Action
Screens”這個頁面中,可以看到PDF目前所使用的字型,只要將字型透過下拉式選單選到所要使用的那一個就可以了,如果在“Font”的下拉式選單
中沒看到新加入的字型,就表示加入失敗囉,請重新檢查一次看是否有那裡有問題。完成以上動作後,就可以讓ThinkingRock順利的輸出中文PDF
檔,也就可以列印出來帶在身上隨時看囉!



參考資訊:



















[1]“红旗下的蛋 - 为ThinkingRock的REPORT添加中文字体”; http://www.fallleaf.net/content/view/148/9/.
 
[2]“Thinking Rock FAQs”; http://www.thinkingrock.com.au/faq.php#faq6.
 

 


用指令模式搜尋檔案並直接刪除-使用find指令


用指令模式搜尋檔案並直接刪除-使用find指令


使用指令來搜尋硬碟中的檔案,使用locate指令是最快速的,但是使用locate搜尋的結果並不能直接做處理,需要一些小技巧才能套進其他指令裡。但
是使用find指令卻可以克服這個問題,因為find指令有一個"-exec"的參數,可以讓我們針對搜尋出來的結果直接套用到指令裡。舉個例子來說,通
常系統中總會有一些無用的小檔案零散分佈在各個目錄中,例如log檔或是文字的備份檔。若是要一個個的去找出來再使用rm指令來刪除的話,做完這些事,大
概鍵盤也快散了吧!其實可以使用find指令配合"-exec"參數就可以做到了。

以檔案thumbs.db來做例子,這個檔案常出現在各個角落裡,但幾乎沒什麼特別作用。



# find . -name thumbs.db -exec rm {} ";"



其中的{}代表的就是使用find指令所查詢到的所有結果,exec參數需要以分號結尾,但必須要加上引號""或是跳脱字元\。-name參數也可以使用
萬用字元*,但是必須加上引號,才不會發生錯誤。以上的指令也可以改寫成以下的指令:


# find . -name thumbs.db -exec rm {} \;


以下是使用萬用字元的例子


# find . -name "*.bak" -exec rm {} ";"


會將目前這個目錄以下所有目錄中副檔名是bak的檔案予以刪除。

JSymphonic - Linux 下的 SonicStage

JSymphonic - Linux 下的 SonicStage



    Sony的Mp3
player在Linux下的使用情況對我而言一直是一個很難打破的瓶頸,不過現在這個瓶頸將被打破了。JSymphonic一個為了要解決Sony的
mp3 player在linux下交換資料的opensource project解決了這個問題。



官網:http://sourceforge.net/projects/symphonic/

目前版本:0.2.1alpha3_unstable

目前支援的音樂格式:mp3丶





當mp3
player連接上電腦時,系統將它以儲存媒體的形式掛載。在執行JSymphonic之後,到Option的Configuration中,更改
Device path的值,讓JSymphonic可以讀到mp3 player的路徑就可以了。



如果遇到輸入到mp3 player後的檔案無法播放的話,解決方法是要在mp3 player中生出一個ID檔。



如果遇到mp3的歌名是中文,但傳到mp3
player後卻變成亂碼的話,這個問題有找到解法並已反應給官方,在下一版會改進。如果等不及到下一版出現的朋友,可以下載原始碼自行編譯或下載我改好的臨時版本



注意哦!mp3的id3tag最好使用utf8格式。


kernel-2.6.26.3-14無法使用BestCrypt

前幾天將我的FC8 kernel更新到kernel-2.6.26.3-14.fc8之後,發現有兩個使用上的問題,一個是VirtualBox1.5和1.6都無法正常啟動了,不過在將VirtualBox更新到VirtualBox-2.0.2_36488_fedora8-1.i386就可以正常使用了。另一個問題發生在BestCrypt-1.6-17上,似乎是kernel-2.6.26.3-14.fc8並沒有支援BestCrypt所要使用的密碼編碼,以致於無法啟動。還好舊版本的kernel-2.6.25.14-69.fc8還保留著,在GRUB開機選單中選擇以kernel-2.6.25.14-69來開機,BestCrypt仍是可以正常運作的。還請有在使用BestCrypt的朋友在便新kernel時注意一下這個問題。若發現其他kernel版本也有類似的問題,也請留個言分享一下資訊,讓其他朋友在更新時可以避開不支援的kernel版本。謝謝大家。

錯誤訊息類似以下訊息
Unknown symbol register_bc_algo
Unknown symbol init_pid_ns


你的Fedora yum update 最近無法更新嗎?!

前陣因為Red Hat和Fedora的更新伺服器發生遭駭客入侵事件
所以部份的伺服器暫停服務,但在九月初已經陸續恢復正常,但是因為新的更新檔案搬移到另一個新的目錄中,並且採用新的簽署金鑰。所以必須要做些小小的變動
才能順利的繼續更新到安全可靠的套件檔案。請按照以下的步驟做,將可以在你的系統中新增目前可以安全使用的新套件倉庫,以便可以繼續更新系統套件。
1.首先下載fedora-release-8-6,並將其存放在本機電腦中。

2.進到存放fedora-release-8-6.transition.noarch.rpm的目錄中,使用以下指令安裝這個套件。


# sudo rpm -Uvh fedora-release-8-6.transition.noarch.rpm

安裝這個套件就會在系統中自動新增一個套件倉庫。

3.第二步驟完成後,就可以使用yum來做系統更新了。


# sudo yum update

[FC8] Linux下的Picasa無法執行


   
似乎自從上一次的系統全面套件更新後,系統中的Picasa就開始不太正常了。發生了無法啟動的現象,因為在XWindow下看不到任何的錯誤訊息,只能
確認一件事,就是他掛了,無法正常啟動。改由console指令模式來呼叫,通常想知道程式的錯誤訊息,只要透過console來執行大都可以得到一些訊
息。經由console執行picasa的結果,果然出現錯誤訊息,如下:




/usr/bin/picasa: line 139: 18028 程式記憶體區段錯誤  
"$PIC_BINDIR"/wrapper check_dir.exe.so

/usr/bin/picasa: line 175:
18135 程式記憶體區段錯誤  
"$PIC_BINDIR/wrapper" regedit /E $registry_export
HKEY_USERS\\S-1-5-4\\Software\\Google\\Picasa\\Picasa2\\Preferences\\






    “
式記憶體區段錯誤
”,一看到這個資訊,直覺告訴我可能是Picasa的檔案有損毀造成的,於是試著把Picasa套件從系統中
移除再重新安裝一次。不過很可惜並沒有成功,依舊是如此。我的picasa是裝google提供的linux下的版本,並不是使用windows下的版
本。所以picasa自己使用著另外一套wine套件,並沒有和我系統中的wine共用,所以第二個懷疑的便是wine是否出了問題,透過google查
詢找到了一件有趣的事情,
料就在wine的官方網站上
。這個bug就發生在最近,系統更新完後我的kernel和wine也一起更新了,就出問題了。雖然官方
網站上顯示的錯誤訊息和我得到的並不相同,


preloader: Warning: failed to reserve range 00000000-60000000
err:dosmem:setup_dos_mem Cannot use first megabyte for DOS address space,
please report


但似乎是相同的原因導致的,估且一試,果然是可以的。只要在執行picasa之前,先執行一次以下的指令,就可以正常的啟動Picasa了。

些網友反應一但發現有這個問題時,千萬不要使用root權限去執行,據說一旦在有問題的情況下使用root執行了picasa,將會導致picasa無法
再使用。我運氣好,沒有用root來試軟體的習慣,不過也不敢試,因為手邊只有這一台NB,如果玩掛了,手邊現在沒有充足的資源可以修復系統,將會很慘
的。還請各位朋友注意一下這一點。





$ sudo
/sbin/sysctl -w vm.mmap_min_addr=0



如果不想在每次執行前都這麼做的話,可以依照以下的步驟做變更,之後開機後系統就會自行幫你做這個動作。



$ sudo
gedit /etc/sysctl.conf

修改/etc/sysctl.cof這個檔案。在檔案中尋找以下這行:

vm.mmap_min_addr
= 65536


改成以下這行


vm.mmap_min_addr = 0




把這個值改成0的話,似乎是對系統的安全性降低了一些些,但影響不算大,但目前暫時只能用這個解決,期待下一版的wine可以解決掉這個問題,就不用再改
動這值了。


PS. 如果改好之後picasa還是不能正常執行的話,再附加上一個動作。把個人目錄下的.picasa目錄刪除掉,再試一次。


# rm
-rf ~/.picasa/
















[1] “PreloaderPageZeroProblem
- The Official Wine Wiki”;
http://wiki.winehq.org/PreloaderPageZeroProblem.
 


Linux當機時的緊急處置

如果正在使用linux的情況下發生當機時,請試試以下三組特殊指令,或許能挽回一些資料(但無法保證救回什麼或救多少就是了)。
Alt + SysRq + S: 緊急同步,可以將緩衝區中的資料強置寫入硬碟裡,儘量減少當機造成的損失。
Alt + SysRq + U: 將所有的硬碟 umount
Alt + SysRq + B: 強制系統立刻重新開機。

Docker SIGILL: illegal instruction 問題除錯記錄

Docker SIGILL: illegal instruction 問題除錯記錄 最近在一台平常執行得好好的伺服器上,遇到一個讓人頭痛的 Docker 問題。 原本 Portainer 和其他容器都可以正常運行,但在系統突然當機後,所有容器在啟動時都出現以下錯誤訊息: d...