2014年4月23日 星期三

在命令提示字元環境下使用GCC


對於linux使用者來說,使用文字介面編譯是比較舒適的一件事情 ,但有時仍免不了要在windows環境下來寫程式,這時如果能在windows內建的命令提示字元中編譯那就太棒了。

要在windows的命令提示字元中使用gcc並不會太過複雜,我們需要的是安裝好Mingw這套軟體,並且修改windows下的環境變數 PATH 即可。


首先,到wiki中搜尋 Mingw,並進入該條目
http://zh.wikipedia.org/wiki/MinGW

拉到下面,找TDM-MinGW GCC 這個版本
 
 接下來是一連串的安裝動作,鏡站可以選擇台灣,會比較快


到此已經安裝完畢,但我們仍須改變環境變數,否則CMD無法自動幫我們找到GCC這編譯器



在環境變數的尾端加上你剛剛安裝的路徑,預設是C:\TDM-GCC-64\bin,記得在這串位置之前必須要有一個半形分號「;」,以隔開其他環境變數。

至此已經可以直接在CMD中使用GCC了

2014年4月12日 星期六

[python] 命令列參數 argv argc[] in python

 

在C語言中,argv 和 argc[] 這兩個命令列的參數相當常使用,主要用於引入外界的變數,可以動態的為程式配置不同的變數,節省修改程式再編譯的時間,相當方便

python也提供相同的功能,使用方式如下:

import sys
for i in range(len(sys.argv)):
    print "i=\t",i," argv=\t",sys.argv[i]
print “argc=\t” ,len(sys.argv)

這裡的sys可以視為一個物件,而argv則是sys的一個方法,可以顯示其中存有的元素這樣

[python] 資料輸出輸入方法

在科學計算上經常會使用的檔案的輸出以及輸入,在這方面python提供了一些功能可以使用

過去我會使用open函數,使用方式如下:

fi=open('workfile', 'r') ##讀取模式
fo=open('workfile', 'w') ##寫入模式
python提供兩種方式存取檔案,而打開檔案以後,存檔的方式更是相當簡單,例如以下為存檔

fo.write( string ) ##輸入的格式為字串
當然,寫入時的字串也可以經過格式化再輸出,像是以下輸出 1 2為例

fo.write(“%d\t%d” % (1,2))
則可以輸出 1 2至檔案中,相關的格式化方式和C很類似
而讀取的方式也很簡單

fo.read(字元數)
fo.readline() 
基本上是比較常用後者,因為這可以搭配string的一個方法 split 來切斷陣列
假設目前有一個檔案 data.dat 如下:

1  1.1
2 1.2
3 3.3
則讀取這個陣列使用方式如下:


x=[]
y=[]
fo=open("arr.dat")
while 1:
        line=fo.readline()
        if line=="":
                break
        line=line[:len(line)-1].split("\t")
        x.append(line[0])
        y.append(line[1])


以上是一般情況下讀取檔案的方法,然而在科學計算上,python提供了一組更加強大的工具包:numpy
在這函式庫中,也有一組主管檔案輸出輸入的函式──loadtxt 和 savetxt,可以直接輸出輸入在numpy中所定義的矩陣,使用方式如下:


from numpy import loadtxt,savetxt,zeros
arr=loadtxt("arr.dat")
x=zeros((len(arr),1))
y=zeros((len(arr),1))
data=zeros((len(arr),2))
for i in range(len(arr)):
        x[i]=arr[i][0]
        y[i]=arr[i][1]
        data[i][0]=x[i]
        data[i][1]=y[i]
savetxt("arr2.dat",data)

2014年3月13日 星期四

在 Win 7 環境中安裝 Python 2.7

Windows 下安裝一些東西總是比 Linux 麻煩些,同樣一件事在 Linux 環境下只需要 sudo yum install python 就可以結束,而在 Win 環境中就得多出幾個步驟,挺麻煩的。
讓自己能夠方便記憶,是這篇文章的目的,比起教學,其實更像筆記。
首先得到官方網站下載安裝檔,這裡可以選擇版本,基於習慣我選擇2.7版
http://www.python.org/
擷取
接著,執行安裝檔進行安裝,並記住安裝的路徑 (預設是C:\Python27)
擷取
接著為了能夠在命令列呼叫 python 互動式窗,必須修改環境變數
路徑是控制台>>系統及安全性>>系統>>進階系統設定>>環境變數
擷取
編輯「Path」,並在最後面新增「;%PYTHON_HOME%」(注意!!前面有分號)
擷取
並新增一個新的環境變數,名稱為「PYTHON_HOME」,而變數值則是剛剛安裝的路徑,預設為C:\Python27
擷取
至此已經完成安裝了,至於執行方面則是直接編輯好程式,並存成附檔名為 .py 的檔案,並直接點兩下執行即可

2014年2月5日 星期三

在大雪封閉的山莊裡

在大雪封閉的山莊裡立體書封

這本小說使用著推理小說中的超級老梗──大雪封閉的山莊,看到標題,原本以為這又是「名偵探天下一」的系列作之一,會是一本嘲諷本格推理的小說,然而實際上並非如此。

故事的主角是一群舞台劇演員,他們剛剛通過試鏡,一群人受到劇作家東鄉鎮平老師的指示前往深山的民宿住四天,並在這四天共同創作出一齣推理劇。背景的設定是推理小說的老把戲──在大雪封閉的山莊。在這過程中,團員們一個接著一個被宣告「死亡」,一開始團員們仍用著排演的心態看待發生的事件,直到元村「死亡」現場的染血花瓶出現,團員們開始懷疑這齣戲劇到底真的只是一齣戲,還是兇手精心策劃的殺人遊戲……

整本書對主角久我和幸的心境描寫得十分生動,很有代入感,同時由於書中所有角色都是職業演員的緣故,整本書比一般的偵探小說來更有懸疑感,感覺每個人的行動都像是在演戲,任何人都不能輕易相信。

2013年10月21日 星期一

[不專業開箱] Sony Xperia SP

  先前使用的手機是去年暑假購買的二手 HTC Radar ,Radar是屬於 Windows Phone 7 系統的智慧型手機,使用起來相當得順暢,但除了順暢以外仍有許多我相當在意的問題存在,而由於前幾天在充電時不小心踢到線,它從此無法開機起來了。由於是二手的機器,我不太想再花一筆錢去修它,索性就買了一台新的智慧型手機,而這次我選擇的不再是 Windows Phone ,而是 Android 系統的 Sony Xperia SP 這台機器。下文將會寫下Sony Xperia SP的開箱文,以及我使用 Windows Phone 一年,以及使用 Android 一星期的經驗來進行些許的比較,內容部分則會以「使用體驗」為主,效能與其他深入的部分我不會做太多探討。

_MG_0519_MG_0518
左圖為Radar 右圖則是 Xperia SP (加上皮套)


  在過去的一年中,我所使用的是 Windows Phone 7 的系統,此作業系統標榜的是流場的使用體驗,而多數的情況下的確是如此,在收/發電子郵件、瀏覽網頁、上PTT、通話、Facebook等功能幾乎都內建在此系統中了,而設定部分也十分簡便,介面也相當的親民,其中我認為做的最好的部分是訊息整合以及Facebook 動態,介面真的很直覺,使用起來非常迅速。

  Windows Phone 是個很流暢、迅速的系統,但除了上一段所敘述的功能以外,它的表現就差強人意了。

  首先,Windows Phone 在應用程式的選擇上落後其他兩家系統,我需要的 APP 常常是在另外兩家系統上可以輕鬆找到,而Windows Phone 就很難找到,像是我由於工作需求需要的 SSH 功能,雖然Windows Phone 上也有,但不是需要付費就是功能不齊。而由於我很多文件都還放在 FTP 上,但由於WP 的瀏覽器並不支援 FTP ,因此當我臨時想查找舊文件的時候,就得打開筆電、透過手機上網來看,相當不方便,而這些功能在Android上我都很輕鬆的找到了。

  Windows Phone 現在的狀況就是使用者很少,而使用者少所帶來的負面結果就是第三方資源也很少,除了微軟官方發行的軟體很順、完成度很高以外,不少軟體簡直讓人不敢恭維……像是 Line 在Windows Phone 中簡陋得像是未完成版……畢竟使用者少,軟體公司也比較不會注重這一個系統,這真的很無奈。

  Windows Phone 是個很流暢的智慧型手機,該有的功能基本上都有,但如果需要更進一步、亂七八糟的功能……Windows Phone 就不是很適合了。



  花了好長的篇幅在講 Windows Phone ,開箱文總算要開始了


  _MG_0514
這是內容物,盒子、手機、充電器、傳輸線、耳機、說明書


  這隻手機我是在公館買的,花了八千八,價格大概和網路上差不多,加上我也不想跑遠,於是就直接在那買了。
_MG_0516
  上圖是裝上皮套後的樣子,沒上皮套的時候機體側面不是很好拿,摩擦力不太夠,容易在桌上自摔,所以我選擇購買皮套。由於這隻手機並不是太熱門的機器,所以皮套有點難找,我找了兩三家才找到,皮套構於士林。

  使用一星期的感覺,大概就是偶爾會有不明顯的頓感吧,並不是開程式的速度很慢,而是快速滑動時會出現一頓一頓的感覺,雖然快速滑動時不管頓不頓都看不到上面寫的字,但和 Windows Phone 比真得有明顯的頓感。

  在內建的軟體部分,我覺得比起 Windows Phone 來得不直覺,去年我從 S60 換到 WP ,我一天以內就可以很流暢的使用信箱、FB聊天室、MSN等功能,而在Windows Phone上我則多花了一些時間適應,不過 Chrome 倒是相當的棒,和電腦版同步書籤的功能真的很方便。

  而Android 市集則是比 WP 多了太多軟體了……連我常用來處理數據的 Octave 都有,非常神奇 (不過誰會用手機來跑計算阿…)

  總結一下,Sony Xperia SP 比起 HTC Radar 有滑動時有點鈍、開程式很快(應該的,配備不同等級)、檔案系統很棒、軟體很多、介面設計比較不親民、自訂性高等等不同之處。

  感覺兩種系統有點像是自排轎車與手排麵包車,同樣能開, Android 多了不少操控性與龐大的功能,而Windows Phone 則是主張舒適流暢的體驗,各有各的優點,很難說誰比較好誰比較差,不過整體來講,我是比較喜歡Android系統的,因為這比較合乎我的需求。

2013年8月22日 星期四

飛上天空的輪胎

http://www.books.com.tw/exep/prod/booksfile.php?item=0010531777

作為一個死亡車禍的肇事公司,「我們無罪」這句話在無論怎麼看來確實是個脫罪之詞。

這本書敘述著一間貨運公司──赤松貨運,因為一場死亡車禍而失去了主要客戶,就連銀行也停止借貸,造成資金周轉不順,面臨倒閉的命運。

把肇事車輛送回原廠「希望汽車」調查,出來的結果是「赤松貨運的維修疏失」,乍看之下的確十分合理,然而在詳細檢查公司的維修部門後,卻沒有發現任何維修的疏失,公司被迫面臨著倒閉的壓力以及員工、客戶的的背離,過著近乎絕望的日子。

之後在社長赤松的德郎的努力奔走之下,發現了「希望汽車」公司出產的產品可能有設計上的缺陷,最後在汽車公司內部人士、赤松貨運、警方、記者、貨運同業等等各方正義之士的覺醒以後,終於擊敗了巨型財閥──希望集團,成功了守住了家人以及員工。


這本書讓我看到了日本中小企業不同於台灣的風貌,也許是「終身聘用」制度的影響,日本的中小企業似乎比起台灣的企業多了些一起打拼的人情味,雖然其中也不泛逃離公司的主管,然而大多數的員工仍是對公司忠心不二,而老闆面對公司本書,也不同於台灣以為自己賺錢為重的價值觀,反而是以社會貢獻、守護員工及眷屬為己任,感覺就像是在看江戶的時代劇一樣呢。

 另一方面,在書中的傳統中小企業,似乎也十分的重視「禮義」兩字,其中「失禮了,這種時候應該是由我拜訪貴公司」的台詞經常性的出現,可見在日本傳統社會中是非常注重禮貌的,而義氣這部分,從赤松社長的言談中,也經常性地提及「以往幫過你們,現在也該回頭幫助敝社了」這類台詞。

然而這本書中也顯示了在現代化的過程中,「禮義」兩字漸漸地從商場上消失的情況,相模機械的片面中止合約、東京希望銀行要求立刻還款等等事項即可看出端倪。在我看來,雖然禮義不能當飯吃,可是失了這些人性,那賺了再多錢又有何用呢?

《飛上天空的輪胎》這本書還有一個貫串整本書的核心,就是「我無罪」這句話,當眾人皆認為自己有罪的時候,為求盡快解決而違背良心認罪、重新出發固然是一個辦法,然而赤松德郎選擇的是不同的方式,他從頭到尾堅持著「我無罪」,這份正直應該就是本書最想要彰顯,同時也是現代社會中最為缺乏的元素了吧。