發表文章

目前顯示的是 2015的文章

python3.x & pyhton2.7 選擇,到底要學哪一個?

圖片
基本上在文章開始之前必須先說明: 以python2.7 為界,python2.7 之後的版本是不向下相容的,換句話說:當你使用 python3.x 版你的程式將無法透過python2 的直譯器運行。 雖說概念是相同的,但在細部語法上有著些微的不同,所以直接拿第2版的程式下去直譯是會出錯的。 以下簡略的分析兩著的優缺點以供讀者閱後做選擇: python 2.7  在ubuntu 13.04版本之後預載python3直譯器,但如openstack等伺服器大多運行舊版的本的Linux 系統,所以如果要做系統底層如 process control 等應用或考量與現行serve 的相容性,建議還是以python2.7 為優先考量。 python 3.x 已逐漸成熟,大部分會需要用到的package 都已經從2.7版轉移至3版了,都可以在python 的Library 中找到,網頁所使用的框架 Django 也從第1.5版開始支援python 3.x了,所以在大多數的狀況下已不太需要擔心不相容或找不到python package 可用的窘境。 python Library :  https://docs.python.org/2/library/ 以此紀念一位逐漸離我而去的人。

鄭捷效應 以旅俄觀點淺談設置行李檢查

圖片
【鄭捷效應 羅淑蕾提搭捷運照X光】 〔記者林良昇/台北報導〕立法院院會今處理臨時提案,鄭捷台北捷運隨機殺人案震驚社會,讓捷運治安引發外界討論,捷運警察也擴編因應,國民黨立委羅淑蕾今在立院臨時提案,要求研議以X光機加強安檢作業。 新聞連結: http://news.ltn.com.tw/news/politics/breakingnews/1503680 --------------------------------------------------------------------------------------------------------------------------------------------- 事實上在俄羅斯也是這麼做的,尤其是莫斯科;每個捷運站與火車車站在入口都必須通過爆裂物檢測,而大型車站(如中央車站)甚至必須通過行李檢測完全比照機場。 剛開始是驚訝的,但也漸漸的熟悉他們的生活模式。老實說在那段時間我所體驗到的社會氛圍,這樣的機制是維護人民安全而不是限制或恐嚇人民(前年在北京旅行同樣的事情,那種感覺又是另外一回事)。 但個人觀點是:覺得臺灣還不至於需要到這種程度啦...畢竟俄羅斯也是泱泱大國,有自己的安全考量。而臺灣似乎還沒收到這種國際上的威脅(我是指恐攻之類的事件),因為鄭捷事件而就要設X光有點太過度反應了。 無差別殺人這種問題其實都跟家庭教育有關係的,教育問題如何從家庭跟學校一起改善、改變。 如果說要解決類似的安全問題,倒不如去想想要怎麼解決校園霸凌或家庭的問題以杜絕類似的案件再度發生。

Socket Server (1) 初探

圖片
甚麼是 Socket Server                   凡是網路兩端互相連線傳送資料時的溝通介面就是socket,是一個網路系統的通訊函式庫,在任何作業系統中可以通用。主要的5大函式組成: socket()   bind()  listen()  connect()  accept()  bind()一般用於服務器端,將一個套接字與一個套接字地址結構相關聯,比如,一個指定的PORT和IP地址。 listen()是使Socket進入等待連線狀態,等待客戶端(Client) 連上線來,很顯然的呼叫此函式的主機,功能會是一台伺服器(Server)。 如果有Client想要連過來,此時可以呼叫connect()來跟Server 連線。而Server接受後會建立新的socket和Client通訊,listen socket則繼續存在等待其他Client,直到關閉為止。 ----------------------------------------------------------------------------------------------- TCP 的連線建立概論 Client端若要與Server溝通,必須透過connect建立連線,經過驗證確定連線成功後,才能進行資料傳輸。在TCP的通訊協定中存在著一種三向交握(three-way handshake)機制: Client向Server提出連線要求(connect()) .Server若接到要求,則回應Clinet接到要求 .Client接到回應,向Server表示收到回覆 (Ref: http://mis.bankshung.net/2013/12/port-nmap.html) 至此才算連線建立完成,雙方可以開始交換資料若發生錯誤,則會由轉送中繼站回傳ICMP錯誤訊息connect函式讀到後,會回報錯誤給程式。 ------------------------------------------------------------------------------------------------------------ 下一篇將會探討python socket server 與

【創客】ESP8266 Wi-Fi 模組初探

圖片
在 2014 年底,市場上開始出現一種稱為 ESP8266 的 Wi-Fi 無線通訊模組, 他是一種透過 UART 轉 Wi-Fi 的 SoC ( System on Chip )模組 憑藉著極低的購置成本(新台幣 200 元以下),讓自造者可以用很低的成本為其產品加上 Wi-Fi 無線通訊能力。在這個強調物物相連的物聯網時代裡,此一廉價可靠的 Wi-Fi 通訊模組不啻為增強自造產品的優良選擇。 ----------------------------------------------------------------------------------------------------------- ESP8266 Wifi 通訊模組 – 體積小、價格便宜 ( 約 100~200 台幣 ) – 本身可連線到無線網路,也可以自己成為 AP( 無線網路基地台 ) – 支援 TCP 和 UDP 通訊協定 – 可在無線區域網路中扮演伺服器 (Server) 等待連線或扮演客戶端 (Client) 與 Server 連線。 ------------------------------------------------------------------------------------------------------------- ESP8266 接腳腳位   接腳介紹:   CH_PD :晶片致能,需要接 VCC 才能夠使用   VCC :高電位( 3.3V , 若接 5V 會燒壞 )   GND :低電位 (Ref: http://mcuoneclipse.com/) ---------------------------------------------- ------------------------------------------------------------------------

方便的代價

剛剛在郵局辦理金融業務, 想說存簿已經因年久遺失,順便申請補發好了。 當我正說出這個想法,櫃檯人員不斷的希望我再回去找找看, 起初我還沒意識到她背後的涵義,單純的以為只是站在客戶的立場不要白花這筆工本費。 但此時我低頭看了一下手錶,意識到原來剩下5分鐘就到下班時間了。 意識到後我也欣然的等她幫我辦理完業務,說升謝謝後拿著東西離開。 等待下次再找機會來申請補發。 2014年有幸出訪瑞士,在瑞士的超市中, 如果關店時間一到,不論您是否正排著結帳隊伍, 一律請您將手上的商品放回商品架,下次請早。 臺灣號稱領先全球與讓諸多外國朋友羨煞的方便總是建立在犧牲他人的權利上。 雖然這個例子對方是公家機關的身份,但是我仍就很開心看見所謂的勞工爭取自己的權利。 「方便不應是建立在他人的犧牲之上,犧牲應有對等的代價。」

Python 開發環境 - Eclipse

圖片
以下簡記 python 使用 Eclipse 為開發環境的安裝過程: Step 1: 安裝 python 編譯器 前往連結: https://www.python.org/downloads/ ------------------------------------------------------------------------------------------------------------> Step 2: 下載並安裝JAVA JDK (如果已有可略過) 前往連結: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html ------------------------------------------------------------------------------------------------------------> Step 3: 下載JAVA Auto Installer   前往連結: https://eclipse.org/downloads/ 選擇安裝 Eclipse IDE for Java EE Developers ------------------------------------------------------------------------------------------------------------> Step 4: 進入 Eclispe Market Place 搜尋:「PyDev」 前往連結: http://marketplace.eclipse.org/ 此時啟動 Eclipse ,將install 拖曳至Eclipse 的視窗上緣即會啟動安裝程序 --------------------------------------------------------------------------------

Ubuntu x Windows8 雙系統設定

圖片
在ASUS G56JR上安裝 Windows8.1 與 Ubuntu 15.04跑雙系統 (先裝windows 才裝 Ubuntu)。 但是在安裝完Ubuntu後發現:Ubuntu 無法順利關機,按下關機鍵後只會關閉工作欄,然後只剩下桌布,毫無反應。 很顯然的,開關機程序出現了問題。此時必須更新GRUB 的資料,即可解決此一問題 (如果在多重開機選單出現了問題,也可嘗試此一方法,即可順利抓到Windows 系統) Solution : sudo update-grub ------------------------------------------------------------ GNU GRUB (簡稱「GRUB」)是一個來自 GNU專案 的 啟動載入程式 。GRUB是 多啟動規範 的實作,它允許使用者可以在電腦內同時擁有多個作業系統,並在電腦啟動時選擇希望執行的作業系統。GRUB可用於選擇作業系統分割上的不同 內核 ,也可用於向這些內核傳遞啟動參數。 GNU GRUB的前身為 Grand Unified Bootloader 。它主要用於 類Unix系統 ;同大多 Linux發行版 一樣, GNU 系統也採用GNU GRUB作為它的啟動器。 Solaris 從10 1/06版開始在x86系統上也採用GNU GRUB作為啟動器。

你的第一支Python程式 --- 序曲

圖片
官方載點: https://www.python.org/downloads/ 我們可以在這邊找到Python3.x和Python2.x版,因為Python3加入了許多新功能也更直覺化(這就比較主觀啦)所以後續文章將針對Python3介紹 Windows 的使用者對安裝程序應該不會有太大的問題,相信大家都可以很快的得到需要的工具,那至於Ubuntu的使用者需要特別注意的是:Ubuntu 13.04 版本起, 已有預載 Python 3 , 不用自已另外安裝囉! ---------------------------------------- ☭ Note : Python3 與 Python2的語法有著滿大的差異,兩者不相互相融,請注意!

Python 初體驗

Python ,是一種 物件導向 、 直譯式 的 電腦程式語言 ,具有近二十年的發展歷史。它包含了一組功能完備的標準庫,能夠輕鬆完成很多常見的任務。它的 語法 簡單,與其它大多數程式設計語言使用大括弧不一樣,它使用 縮進 來定義語句塊。 它經常被當作腳本語言用於處理系統管理任務和網路程式編寫,然而它也非常適合完成各種高階任務。Python虛擬機本身幾乎可以在所有的 作業系統 中運行。 ---------------------------------------------- Web程式 Python經常被用於Web開發。比如,通過 mod_wsgi 模組, Apache 可以運行用Python編寫的Web程式。使用Python語言編寫的 Gunicorn 作為Web伺服器,也能夠執行Python語言編寫的Web程式。Python定義了 WSGI 標準應用介面來協調Http伺服器與基於Python的Web程式之間的溝通。一些Web框架,如 Django 、 Pyramid 、 TurboGears 、 Tornado 、 web2py 、 Zope 、 Flask 等,可以讓程式設計師輕鬆地開發和管理複雜的Web程式。 Python對於各種網路協定的支援很完善,因此經常被用於編寫伺服器軟體、網路蠕蟲。第三方函式庫 Twisted 支援非同步線上編寫程式和多數標準的網路協定(包含客戶端和伺服器),並且提供了多種工具,被廣泛用於編寫高效能的伺服器軟體。另有 gevent 這個流行的第三方庫,同樣能夠支援高效能高並行的網路開發。 GUI開發 Python本身包含的Tkinter庫能夠支援簡單的GUI開發。但是越來越多的Python程式設計師選擇 wxPython 或者 PyQt 等GUI套件來開發跨平台的桌面軟體。使用它們開發的桌面軟體執行速度快,與用戶的桌面環境相契合。通過 PyInstaller 還能將程式釋出為獨立的安裝程式包。 作業系統 在很多作業系統裡,Python是標準的系統元件。大多數Linux發行版以及NetBSD、OpenBSD和Mac OS X都整合了Python,可以在終端機下直接執行Python。有一些Linux發行版的安裝器使用Python語言編寫,比如Ubuntu的Ubiquity安裝器、Red Hat L