2009年11月2日 星期一

linux下pdf處理

pdftk是一套用以處理pdf的程式,它可以對pdf做許多動作。用指令去控制也算方便。
例如

pdftk 1.pdf 2.pdf 3.pdf cat output 123.pdf

就可以合併兩個pdf。

2009年9月17日 星期四

aspell拼字檢查

許多軟體都內建拼字檢查的功能,可惜的是這並非全部。
這時便是利用aspell的好機會,aspell是一功能強大且自由的拼字檢查軟體。

使用aspell很容易,只要用以下指令

aspell --lang=en -c a.txt

就可以了。

要指定lang的原因在於系統是設定為zh_TW,aspell便會去抓zh_TW的字典檔,但這是不對的,因此要指定lang。-c是指定要檢查的檔案。這樣子就可以進入aspell的介面使用了。

2009年8月20日 星期四

linux kde連接windows 7網路印表機

最接印表機伺服器由xp升級至windows 7,因此我linux桌機的印表機設定也得更改一下。
想當然爾,事情總是不會那麼順利的...

我的環境是kde,那當然是直接去控制中心->週邊設備->印表機裡直接設定。
記得先更改自己為系統管理員模式,否則在按"新增印表機"時,控制中心就會直接當在那裡,
應該是進入了一直無法取得系統管理員的無限迴圈裡面,kde的一個小小的bug。

在按下了"新增印表機"之後便可進入"新增印表機精靈",因為windows分享網路印表機是藉由類似
網芳的機制,因此在這裡便選擇"SMB分享印表機"。

下一步便是輸入登入帳號,那就輸吧。

下一步就可以選擇遠端電腦與印表機,這時問題就來了,當印表機是接在xp下時,我還可以直接
按掃描就可以找到,但是換到windows 7後,掃描便掃不到了。因此便必須採用手動輸入的方式。
工作群組就打windows 7所屬的工作群組,伺服器則要打ip,印表機則是輸入印表機名稱,這在
windows 7上就可以看的到了。之後選擇廠牌及型號找到所屬的驅動便大功告成啦!

恭喜為你的linux完成了網路印表機的設定!

若想要使用CUPS直接做設定,則只需要知道以下這個..

smb://username:password@workgroup/server/printer

其他就照一般設定方式就可以了!

2009年6月22日 星期一

在Debian下使用Lyx(LaTex)打中文

現在偶爾會需要打些中文加數學式子的文件,但之前都是用writer,writer的確是不錯的選擇,輔以math也可以打出很好看的式子,但怎麼樣看爽度就是差了那麼一點。再者math有時排出來的式子就是有一點沒有那麼好看,所以還是用latex最好,唯一的問題就是如何要在latex中打中文。

linux下有許多不錯的latex編輯器,但大部份都是需直接打代碼的,就目前為止只用來打些小文件的我來說並不適用,Lyx倒就是個不錯的選擇,它有unicode支援,基本上算是個所見即所得的編輯器,功能也很完全,也不會太難用。於是便先安裝Lyx。

aptitude install lyx

要使用中文的話當然要再安裝中文相關套件

aptitude install latex-cjk-common latex-cjk-chinese latex-cjk-chinese-arphic-bkai00mp latex-cjk-chinese-arphic-bsmi00lp

接者去[文件]->[設定值]->[語言]->[encoding]選unicode
再去
[文件]->[設定值]->[LaTex前文]中加入

\RequirePackage{CJK}
\AtBeginDocument{\begin{CJK}{UTF8}{bsmi}}
\AtEndDocument{\end{CJK}}

這裡若要換中文字型則把bsmi換成bkai即可。

其它的都不用動,這樣子就可以了!
試打一下應該就可以看到有中文的LaTex了!

另外如果要打在kile上的話則要打上

\documentclass[12pt]{article}
\usepackage{CJK}
\begin{document}
\begin{CJK}{UTF8}{bsmi}
正體中文
\end{CJK}
\end{document}

2009年5月14日 星期四

利用python找關鍵句

這個問題起源於我的好室友問我的一個小題目(還真是看的起我..汗..),他想要寫一個程式可以分析一篇文章,再利用關鍵字選出有出現關鍵字的句子,這不是很難的問題,因此也正好拿來練習不熟的python。

程式碼如下:

import sys
import re
out1=[]
source=open('test').readlines()
x_re=re.compile(r'[.?]')

find=sys.argv[1]

for i in xrange(len(source)):
for t in x_re.split(source[i]):
out1.append(t)

for x in out1:
if(x.count(find)):
print x

雖然結果不是非常完美,但也足夠了,至少我想練習的都有練習到,像是用正規表示法來切句子。
聽說他們用java寫搞的非常複雜,弄了幾百行才弄出來,聽到這個我就不免在心裡偷笑。一如所有程式設計師的想法,簡單的事就要用簡單的方法解決。

2009年5月8日 星期五

在python中使用參數傳遞

參數傳遞要使用的是sys模組中的argv,要此在檔案之前要先import sys。
一個簡單的範例程式如下:

import sys

a=int(sys.argv[1])
b=int(sys.argv[2])
print a+b

這裡要注意的是參數是從1開始算,因為參數0,sys.argv[0]表示的是檔名,例如執行

import sys

print sys.argv[0]

就會出現檔名,如test.py

在執行時只要輸入

python test.py 1 2

就會可以出現執行結果,3。

2009年5月4日 星期一

記錄一下opensoure的網頁應用程式

* Laconica (Twitter)
* Elgg (Facebook)
* WordPress (Blogger)
* Pligg (Digg)
* PHPmotion (Daily Motion)
* Piwik (Google Analytics)
* Tiny Tiny RSS (Google Reader)
* AfterLogic (Google Mail)
* GForge (Google Code)
* osTube (YouTube)
* MyOwnSpace (MySpace)
* Magento (Amazon)
* Gallery (Flickr)
* AtMail (Hotmail)
* eyeOS (Windows)

說不定以後用的著∼