data abstraction(資料抽象化):這個名詞我第一次是在資料庫系統(database management system)中看到的,但那時不是很清楚,因為他定義的方式是「讓使用者看不到資料是如何被儲存的」就能使用該資料,但是程式語言中也提到data abstraction讓programming language讓程式語言有著很大的進步,那時就在卡住了有點想不通,所以就去查了:
data abstraction的確是為了讓隱藏資料的實際實作,使programer能更專注於資料本身,真要說的話「物件」的觀念就是data abstraction的一種,我們不考慮這個物件他用了多少的基礎型別而組合而成這個特定的type,我們只要知道有這個型別,存放的東西有什麼特性即可;即使以非物件導向的觀點來看,基礎型別就是一種data abstraction的概念,不需要考慮整數是怎麼存在記憶體中的(這部份python做更好,python沒有所謂的int是用32-bit儲存的概念,不管多大他都會幫你處理…(因為python的直譯器多是以C實作,所以其實是python會自動幫你做大數法則,不過在使用時不用管這個…)),在使用時可以專心處理整數的問題即可,而不用去管實際上是動到了哪個bit
資料庫也是這樣的,除了剛才所說的「不用讓使用者看到資料是怎麼儲存的」之外,DB的entity和relational的概念也是這種狀況,我只要知道他是代表「系所」即可……
結論:其實資料庫的書一開始就沒有說錯,只是因為自己腦袋一時轉不過來而已……
2011年3月18日 星期五
編譯opencv及後續修正
版本OpenCV-2.2.0、OS Ubuntu 10.10、目前支持的python版本為2.6
預裝:參考OpenCV Installation Guide on Debian and Ubuntu
指令:
在要產生cmake二進位檔的地方,輸入
各個 -D就是opencv的參數
心得一:cmake是拿來自動產生Makefile的,而Makefile是被系統的make所使用的。
問題一:opencv-2.2.0的BUILD_LATEX_DOCS會因不明原因失敗,因此設定為OFF
接著使用
問題二:雖然BUILD_PYTHON_SUPPORT=ON了,但是在python2.6/site-packages/找不到cv.so。
因此參考這篇:Installing OpenCV 2.1 in Ubuntu 中某讀者的回應,安裝python-dev後就能在/usr/local/lib/python2.6/site-packages/找到cv.so了,也可以順利開啟interface了
題外:第一次成功編成別人的make…
預裝:參考OpenCV Installation Guide on Debian and Ubuntu
指令:
在要產生cmake二進位檔的地方,輸入
cmake -D CMAKE_BUILD_TYPE=RELEASE
-D CMAKE_INSTALL_PREFIX=/usr/local
-D BUILD_PYTHON_SUPPORT=ON
-D BUILD_EXAMPLES=ON
-D BUILD_LATEX_DOCS=OFF
~/OpenCV-2.2.0/
※排成這樣只是在blog中好看點…實際上一行也是可以的。各個 -D就是opencv的參數
心得一:cmake是拿來自動產生Makefile的,而Makefile是被系統的make所使用的。
問題一:opencv-2.2.0的BUILD_LATEX_DOCS會因不明原因失敗,因此設定為OFF
接著使用
make
和sudo make install
心得二:make沒那麼難,在沒加參數又有Makefile的情況下,預設使用第一個出現target。而網站所寫的make install則是指定install這個參數。也因此用make才會做兩次,因為第一次所用預設的第一個target沒有做install的動作問題二:雖然BUILD_PYTHON_SUPPORT=ON了,但是在python2.6/site-packages/找不到cv.so。
因此參考這篇:Installing OpenCV 2.1 in Ubuntu 中某讀者的回應,安裝python-dev後就能在/usr/local/lib/python2.6/site-packages/找到cv.so了,也可以順利開啟interface了
題外:第一次成功編成別人的make…
2011年3月14日 星期一
Ubuntu下連接到Windows網路磁碟機
備份用文章,為了怕自己忘記…
案例 :若使用者想連接到\\a.b.c.d\XX2011,其user name 為student,密碼……本題沒差
則:
案例 :若使用者想連接到\\a.b.c.d\XX2011,其user name 為student,密碼……本題沒差
則:
圖一、「位置」→「連接到伺服器」
圖二、照上圖輸入,記得加入書籤以後才不用麻煩
圖三、輸入密碼即可連入…XX應該是XX2011才對,圖沒改好
題外:我還是不大會用GIMP…
2011年3月3日 星期四
syntax highlight test
import sys
print ('Welcome to the Number Guess Game!')
upper = 10
lower = 1
if type(sys.argv) != list or len(sys.argv) > 2 :
print('Usage: guessNum [number between ' + lower + 'to' + upper + ']') )
exit()
#target = input('Please enter the target number:')
target = int ( sys.argv[1])
if target > upper or target < lower:
print('Error: out of range')
exit()
guess = 0
while target != guess :
guess=int(input('Please enter a number between' + str(lower) + 'and' +
str(upper) + ': '))
if target > upper or target < lower:
print('Error: out of range')
exit()
if guess < target:
lower = guess + 1
else:
upper = guess - 1
print('Bingo!')
--
記念第一支python程式,因為作系系統實驗而開始接觸的python……
看起來還不錯(我不喜歡白底的syntax highlighter…),但是因為我還不大熟pygments的關係(也不大熟CSS和blogger Orz),目前只能手動去改標籤,應該可以花個幾個寫個程式讓他變成我想要的就是了……
話說本來想要把blog的本文寬度調成正好顯示79個字元,不過看來很難(而且也不好看)就算了XD~
訂閱:
文章 (Atom)