Friday, February 25, 2005

除濕機

我住的地方非常的潮濕,不得以的情況下(衣櫃發黴,我像是在水箱裡生活),省吃儉用買除濕機。買除濕機前在網路上找了一些資料,有需要的人看一下吧~
除濕機分為A式與B式,A式為適用於室溫18至35℃之機種,B式則適用於室溫5至35℃之機種,現在市面上大多是B式,也就是我們要買的型。
  • 你所需要買的每日除濕能力
(請看除濕機在27℃,相對濕度60%,舊的標準比較寬鬆,他是在30℃,相對濕度80%)
這個公式就是:坪數×3.3×0.24
坪數×3.3是將坪數轉換成平方公尺,而0.24是指每平方公尺的每日除濕公升數。
所以囉,像是8坪的房間,他所需要的日除濕公升數就是:
8×3.3×0.24=6.336(公升)
我的房間很小是3.8坪(跟別人家的玄關一樣大:’),所以需要的除濕公升數是3.0069(公升)

  • 除霜功能:
如果你住的地方會讓機器冷到結霜(會下雪的玉山),記得買有除霜功能的,不然除濕機會無法運作喔。

  • 消耗電力:
電器用品都會寫消耗電力,注意看一下單位是W(瓦)還是KW(瓩)。電費是看幾度電的錢,我租的地方,房東都固定算一度電3.3,滿貴的,因為台電 是分級計費,如果你家的電是在110度以下,每度電才二點多元。(非夏季都是二點多,最多2.7)那瓦怎麼轉換成度?就是一千瓦等於一度。除濕機上面 寫的xxxW就是他在運轉壓縮機一個小時,所必須要消耗的電力,那麼買到230W的除濕機,每天運轉5小時,一個月要花多少錢呢?
[(230×5)÷1000]×30×3.3=113.85(NTD)
這樣還算是粗略的計算,因為壓縮機運轉時,才需要吃這麼多電。

這樣說有沒有比較瞭解啊?
相關網站:
台電電費計算
環保標章

Tuesday, February 22, 2005

Pydoc

寫文件註解在團對開發專案有很大的助益。對於開發團隊所提供的API,如果可以透過html或是其他方式的呈現,在使用API會有幫助。如Python在 互動模式(active mode)提供help([method, class, module])查詢相關使用方式,以純文字的方式展現,當然,也可以前往Python的官方網站去下載HTML版本的Libraries索引。雖然這些都是相當方便,但是,java的開發者應該不會忘記提供查詢API資訊的Javadoc。透過javadoc,在程式中的註解項目(如methodA要傳入什麼參數,傳回什麼參數,會引發什麼Exception……等)可以轉換成HTML的呈現模式,利用瀏覽器的點選,方便使用。

Python當然也有這麼好用的東西,就是epydoc。epydoc提供的fields跟javadoc差不多,但是因為語言的特性不同,如變數的型別方便,epydoc有”@type param”的描述,可以建議使用者傳入或傳出的參數,應該是什麼型別。更詳細的內容,可以參考epydoc的文件

除了epydoc,Python安裝完後,會提供pydoc。這個Py檔,執行時在本機開一個port,讓用者透過瀏覽器的方式看內建以及你自訂安裝的 py套件(文字模式的使用者,可以用lynx)。如果作業平台是windows,這個連結會在"Modules Doc",其實就是去呼叫pydoc.gui(),而文字模式的是去呼叫pydoc.cli()。內定的port是7464,可以透過-p port這個參數修改。呈現出來的內容就是使用help({modules,class,method,variable})指令看到的那些囉。

Wednesday, February 16, 2005

Python:Variables in Class

Python可以動態的增減一個class的attribute,這點跟他語言的特性有關係。對於Python,在class裡宣告一個變數,即便是告訴 使用者,這個變數已經存在(instance產生),利用這個class產生的instance,在更改class宣告的變數值之前,所有的 instance都共同擁有同一份變數(all instance share one copy)。
-------------file name:att1.py-------------

class OneAttribute:
iA=1

--------------end file------------------------
在互動式環境下:

>>>from att1 import *
>>>OneAttribute.iA
1
>>> id(OneAttribute.iA)
7951280
>>>oaInstance1=OneAttribute()
>>>oaInstance2=OneAttribute()
>>> oaInstance1.iA, oaInstance2.iA
(1,1)
>>> id(oaInstance1.iA),id(oaInstance2.iA)
(7951280, 7951280)
>>> oaInstance1.iA=2
>>> oaInstance1.iA, oaInstance2.iA
(2,1)
>>>OneAttribute.iA=3
>>> oaInstance1.iA, oaInstance2.iA
(2,3)
>>> id(oaInstance1.iA),id(oaInstance2.iA)
(7951268, 7951280)

Monday, February 14, 2005

Java Python

在別的網站上看到兩篇文章,還滿適合我這種從Java跳到Python的人。
  1. Python is not Java by PJE
  2. Java and Jelly by Gerald Bauer
第一篇是一個看了用wxPython當作GUI library寫的應用程式的原始碼很無奈的人。其實我覺得不管是什麼語言,善用他的特性就好啦!
第二篇是講Python與Java實作上的差異,不過他的範例是用Jython,跟CPython有些不一樣。
有興趣的人可以參考一下嚕。

Thursday, February 03, 2005

複習多重開機

很久沒有在同一顆硬碟上灌Linux以及windows,這次要使用windows NT的boot loader來管理,步驟如下:
1.安裝好windows
順續是:

(a) Win9x
(b) WinNT

在一連串的下一步,windows就安裝好了。
2.安裝Linux
這跟一般安裝差不多,要注意的地方是在分割好空間安裝後,會有選擇要把開機磁區安裝到何處,這時後請把他選在你/boot的掛載點(mount point),西哩呼嚕裝完囉。請把/boot是掛在那個partation記下來。如果忘了,可以去看/etc/lilo.conf或是/etc/grub.conf
3.安裝完成,用光碟開機
把第一片安裝CD放進去,出現boot:的時後打
linux rescue
接著,會有一連串的問題,類似叫你選擇語言,叫你選擇鍵盤規格……等.之後會搜尋你安裝好的系統在那,然後問你要怎麼mount,只須要一直回答OK跟continue即可。成功的mount到安裝好的系統,會跳到文字模式,請依照以下指令:
#chroot /mnt/sysimage
#dd if=/dev/hdb3 of=bLinux.img bs=512 count=1
1+0 records in
1+0 records out
#

(/dev/hdb3是我安裝開機磁區的地方,要改成你剛剛記下來boot磁區代號)
這樣bLinux.img就是開機的映像檔囉!把這個檔存下來.。
4.處理boot.ini
開機回windowsNT,把剛剛存好的映像檔放在與boot.ini同地方(通常是在c:\),打開boot.ini,加入以下的敘述:
C:\bLinux.img="Linux"

存檔,這樣就完成了。簡單吧!其實直接用Linux的開機程式管理比較快喔:P

Wednesday, February 02, 2005

Python初體驗

Python是script language,提供你把程式寫在一個檔案(.py檔),之後讓直譯器執行。當然,他提供命令列互動模式(interactive mode)讓你執行Python指令。Python的內建語言型別有數值型別、字串型別跟物件型別(function、Instance、code都是一 種物件型別)。你可以在想使用變數的時候在宣告(呃!好恐怖,有些人會變的寫出很恐怖的coding style)。
怎麼叫起python呢?只要在命令列打python,就會進入python的互動模式。

Python 2.3.4 (#53, May 25 2004, 21:17:02) [MSC v.1200 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>strA="3 times"
>>>strA * 3
'3 times3 times3 times'
>>>strB="""I can't know that"""
>>>strB
“I can’t know that”

現在來寫看你第一個Python程式吧!
第一個Python:
目標:寫一個method,可以接受Inerger或是string的引數
-----------------------easy.py----------------
import types
def poly(argv):
if type(argv)==types.IntType:
print "This is Int"
elif type(argv)==types.StringType:
print "This is String"
else:
print "I can't recognize"
if __name__=="__main__":#如果使用命令列模式啟動,會到這裡執行
inputdata=raw_input("Please Input something:")
poly(inputdata)
inputdata=input("Please input a integer:")
poly(inputdata)
--------------end easy.py--------------
將虛線中間的內容存成easy.py檔(要照著縮排,python用縮排來辨識區塊),接著執行python easy.py,執行畫面會如下:
E:\>python easy.py
Please Input something:KKlldki""afds
This is String
Please input a integer:892019
This is Int

Install Python

Python學了兩個禮拜,覺得Python是有趣的語言,我就先介紹一下Python的安裝。


安裝:

根據你使用的平台,可以去Python下載適合的版本。

Windows平台:

那就不用說了,直接按兩下就可以安裝完成。裝完以後,記得把Python的目錄加進Path裡,這樣才能在命令列模式執行唷!

Linux平台:

比 較麻煩,因為有些tk/tcl libraries的關係(tk用來GUI設計,也有別的GUI替代方案啦,像是wxPython和QT -Python等各式各樣的modules)。如 果你需要tk/tcl libraries,在./configure完之後會在python source目錄產生modules,在modules裡面會有Setup檔,在這個檔裡面找到下面幾行,把註解符號拿掉,並且將’X’的部分改成你系統 安裝的版本號碼:

# -L/usr/local/lib

# -I/usr/local/include

# -I/usr11R6/include

# -ltk8.X 0ltc/8.X

# -L/usr/X11R6/lib

注 意一下,如果你系統預設安裝的tcl/tk太舊(如8.2以下),要自己安裝新版的tcl/tk,裝完新版的tcl/tk,記得檢查/usr/lib有 沒有你裝好的新版本tcl/tk(用source code裝的tcl/tk沒有指定安裝目錄時,會將.so檔裝到/usr/local/lib)

通通搞定之後,就可以make ; make test; make install

Source code 預設安裝到/usr/loca/bin,記得把/usr/bin/python的符號連結改到新版的python唷!

python透過PVM執行python bytecode,他會去PYTHONPATH所設定的路徑找模組,所以可以額外設定PYTHONPATH。
linux:
bash:
export PYTHONPATH=.:PYTHON_INSTALLED_HOME/lib:PYTHON_INSTALLED_HOME/lib/lib-tk
csh:
setenv pythonpath=(. PYTHON_INSTALLED_HOME{lib lib/lib-tk})

這樣應該就 OK囉!