2009年12月29日 星期二

這真是一張好圖!幾乎把我以前看過所有有關python的東西全部有條理的列在上面。很可惜我不是做工程的,並沒有什麼機會好好的用一用它。不過也後有機會的話,是該好好去研究一下這些東西,即使只是玩過一次也好。

2009年12月23日 星期三

debian中鎖定軟體版本

使用unstable雖然有追逐最新軟體的快感,但無可避免的,常常遇到直接爆炸的情況。例如前一陣子使用的mplayer與最近遇到的virtual box的driver問題,都是在全系統升級後產生的,因此若針對些只要可以穩穩用就好的軟體便可以安裝好並測試後便鎖定它的版本號,避免日後在執行全系統升級後升級它。

在debian中可以透過兩個簡單的方式鎖定特定軟體:

aptitude hold foo或是aptitude install foo=

看系統目前所有被鎖定的軟體:

aptitude search ~ahold

解除鎖定:

aptitude unhold foo

參考自http://man.ddvip.com/linux/debian/aptitude/index.html
裡面還有相關aptitude的小細節,是個查詢的好地方。

2009年11月20日 星期五

一行搞定quick sort

def quick_sort(ls):
return [] if ls == [] else quick_sort([y for y in ls[1:] if y < ls[0]]) + [ls[0]] + quick_sort([y for y in ls[1:] if y >= ls[0]])

個人認為,它這採用這樣子的寫法,在概念上雖然是正確的,不過稍微有點失去quick sort原本的精神。儘管如此,能看到如此簡潔的寫法依然令人驚豔!

演算法加上程式語言是個總充滿驚奇與意外的地方,所謂
好鳥枝頭亦朋友,落花水面皆文章是再貼切不過的形容詞了。

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)

說不定以後用的著∼

2009年4月26日 星期日

openoffice math 筆記

其實我覺得office 2007的方程式編輯器的功能已經很好用了,功能也頗為齊全,甚至可以打出一些math打不出來的式子,還好這種情況不太多。不過在打一大串式子時,math的好處就瞬間浮現,因為不再要用滑鼠移到移去選要用的樣式,也不用點來點去找輸入的位置。但是math還是有些小問題要解決,以下是我遇到並解決的問題。

1. 如何在math中打出and?

and是math中的保留字,如果直接打and的話就會出現特殊符號,預設字型是斜體,所以可以輸入

ital "and"

就可以打出and,其中雙引號是告訴math要直接輸出字串。

2. 如何打出鑲嵌在文字中的方程式?

似乎沒有指令可以做到這件事,不過好險,可以用選的。只要在勾取format->text mode就可以實現這個效果。

2009年4月21日 星期二

修改mp3tag的編碼

編碼問題在linux中早已履見不鮮,尤其是在播放音樂時。
當聽著歌卻只能看著亂碼的歌名實在是一件很不快樂的事情。
此時便可使用mutagen這個用python寫的程式來改編碼。
首先當然要先安裝mutagen

emerge mutagen

再來就可以切換到想要轉換編碼的目錄之下進行編碼轉換了。
再輸入

mid3iconv -e big5 *.mp3

就大功告成了,之後就可以在amarok中顯示正確的歌名了!

若是想要大量修改編碼,則可配合find指令。例如我的歌都放在music下,這時候要先切換到music的目錄之下,再輸入

find . -iname "*.mp3" -execdir mid3iconv -e big5 {} \;

就可以一次搞定全部了!

2009年4月20日 星期一

在linux上快速分享檔案

若欲在linux上分享檔案卻不想設定任何伺服器,那你需要的就是python。只要在終端機下先切換到你要分享的目錄,再輸入

'python -m SimpleHTTPServer'

接下來只要在瀏覽器上輸入http://:8000/就可以了!

雖然可能有些許上功能的限制,但是還是個快速方便又簡單的好東西。

足跡會成為養份

從很久以前我就有一個想法,那就是我認為不管做任何事,它都是有幫助的,不管是在遙遠的未來或是當下。自認為這是個很好的想法,也因此我一直惦記著它。從此以後,不管是做自己覺得再不願意或是再無聊再無用的事情時,都會先想想這個想法,如此,才會有繼續下去的動力。不過卻一直沒有機會把這個想法寫出來,原因是因為找不到一句簡潔的話表示之,就在一個無意的情之下,這句簡潔有力的話就這麼被我找到了,這篇文章也就應運而生。

"足跡會成為養份"
這句話的由來是這樣子的,一位一輩子務農的父親,他非常的專注於他的農事,常常去田裡走來走去以照顧作物。他就用了這一句話來告訴他的孩子為什麼要這麼做,他的孩子在聽了這句話就很感動,之後亦如同他的父親,把自己的足跡當成給作物的養份。有了這種心態,才得以種得完美的作物!

我們的生活亦是如此,即便是再無趣的事情,它都算是我們的足跡,即便是再簡單熟悉的事情,依然還會有可能從中得到新的領悟。有了這些足跡當成我們未來的養份,我們才有成功的可能。

2009年3月23日 星期一

選字在大易

大易真的是一套很不錯的輸入法,不過會這麼說是因為我先學了大易才知道了行列。:)
儘管如此,大易還是有些小地方讓我覺得有點小麻煩。
我想最大的問題就兩個,一是可能因為有四十個鍵的關係,所以產生了幾個字是手很不順的,也因此在遇到那幾個字時總是會打的慢些,不過這項還可以接受,至少手不用大距離的移動;二就是選字,因為原本1234被拿去當字根了,變成當遇到選字時,就得用最右邊的數字鍵來選,否則就只能用滑鼠去按,這個在普通鍵盤上就很糟了,在筆電的鍵盤上更慘....。
自從學會了大易,就深深體會這兩樣缺點,不過也只好認了,因為已經學會了一樣拆字輸入法,要再去學另一樣實在是一件很困難的事情。
直到最近,卻無意間發現了一件事,那就是選字的方法。一直以為選字只能用左邊的數字鍵去選,但在近日竟然發現原來'[]等鍵竟也可以用來選字!?
原因當然就是用gcin用習慣了,不小心回到windows上還是用了gcin上的選字鍵,就不小心發現了這個方法。
我打了快十年的大易,到現在才發現這個方法。不知道社會上芸芸的大易使用者,是否也知道這個呢?