發表文章

目前顯示的是有「python」標籤的文章

再學 Django

前幾年學過 Django,不過那時候學的迷迷糊糊,只學到 python manage.py startapp 的程度,這個禮拜再次學 Django ,看了幾部教學影片以後,開始比較有sense 了,不再拘泥那些莫名其妙的設定,和不知哪來的function 或 class, 反正這樣用就對了。 學的時候看到新的東西先不要有那麼多問題,感覺上進度就比較快了。 後來又想到 Django 這個後端可以搭配 Angular 嗎? 結果發現了 Django Rest framework,就是開 CRUD 給 Angular 接,一整個就很搭。 不過用 AJAX 方式來呈現畫面,就不知怎麼校調才能讓搜尋引擎找的我的網頁...... 說到搜尋,最近也學了一下 ElasticSearch ,跟 Django 一樣很難,雖然別人已經把輪子造好了,不需要自己重新發明輪子,即便如此,學會使用輪子也是需要一段時間。 我想讓 ElasticSearch 能夠正確搜尋中文詞彙,不過照著網路上設定 Analyzer 以後,還是不確定是否它有幫我正確的 analyse 文件。 後來遇到的問題就是我想讓 ElasticSearch 有個介面,能像 Google 搜尋框這樣,接受一些參數或是布林查詢。 不過這塊就卡住了,難道要自己實作一個 ElasticSearch 的前端介面嗎? 奇怪,他怎麼沒有內建這種介面啊?(雖然 Kibana 有搜尋index 的功能,不過那是我電腦上才有裝的 plugin 阿!) 最後弄到 Docker,看了一下在 Docker 裡面放 Django 的教學文,下載來用以後,發現不會改動他預設的設定......,到底怎樣才能用Docker 開發 Django阿,或是docker 的作用只是我開發後,把Django 包成一個 container 給 Docker 使用? 自學程式語言的缺點就是進度慢,遇到許多問題只能慢慢查,甚至就直接卡住了,不禁感嘆一句,真是隔行如隔山~

Kivy 初探

圖片
今天心血來潮,想弄個app來玩 到 kivy 網站上下載了pre-build 的虛擬硬碟,不過用VirtualBox 打開以後,照著官網上的步驟竟然出現錯誤 error: command 'ccache' failed with exit status 1 上網查詢以後發現原來各地網友也碰到這個問題,而且很扯的是這官方網站預先配置好的環境居然也出包。 解法是要下載這個版本的 cython 才行 sudo pip install -I https://pypi.python.org/packages/source/C/Cython/Cython-0.20.1.tar.gz 依照範例輸入以後 ./build.py --package org.test.compass --name compass --version 1.0 --dir ~/code/kivy/examples/android/compass debug installd 發現安裝到手機的app 竟然不能開,點開馬上就閃退了...,換了隻手機還是一樣 原來我以為很簡單的 kivy 設定,竟然是這麼的頭痛,花了好幾個小時都無法解決.... 算了,還是學些有結果的東西好了

更改 ipython notebook 預設目錄

圖片
只要在捷徑中最後一個參數改為自己想要的目錄即可

想不起那段話的全文嗎?找找Chrome 瀏覽紀錄

今天瀏覽網頁的時候看到一段很有道理的話,晚上突然回想起這段話的片段 「對事情的批評反映出自己的能力」 但是完整的話已經想不起來了,於是就到瀏覽器的「歷史紀錄」中一一點開今天看過的網頁,再重新找找,無奈找了兩次還是找不到那句話。 後來想到一個方法。 只要寫個程式去讀取今天看過的網頁內容,尋找是否有我腦海中的關鍵字,那就OK了 在網路上找到如何匯出Chrome 瀏覽紀錄的方法,原本用 sqlite3 打開 History 檔案,但輸入SQL時沒有反應,查詢不到,所以就下載了一個叫 Export History 的擴充程式,把瀏覽歷史匯出成 json 檔案。 json 檔案的格式如下: 所以很方便可以取得每筆紀錄的網址 用python寫了一個幾行的小程式就抓到我要的文章了 原文如下: 「對同一個東西,有人說,太重了,有人說,太輕了。他們其實不是在描述這件東西的重量,而是在描述他們自己的力氣。同樣道理,我們不必過於在意微博上對自己觀點的評論。大家看似讚揚或者批評別人,其實僅僅是在描述他們自己。” --百姓網CEO王建碩

找出stackoverflow 上面的台灣使用者

圖片
Stackoverflow 上面預設沒有依照地區尋找使用者的功能,在查詢Google 以後,發現其實可以利用Google 搜尋功能來找到某地區的使用者。 比方說輸入 site:stackoverflow.com/users python ("location * Taiwan" | "location *Taipei" | "location * taichung" | "location * taizhung") 就可以找到住在台灣、台北、台中等地的python 使用者。 其實還蠻好玩的~~ 詳細介紹請看 http://booleanblackbelt.com/2013/08/how-to-find-the-best-software-engineers-on-stack-overflow/

Python CMD Progress bar

圖片
今天看到一個有趣的Python 程式碼,在 Command line 執行script,下載檔案時有 Progreess Bar import urllib2 url = "https://androidnetworktester.googlecode.com/files/10mb.txt" file_name = url.split('/')[-1] u = urllib2.urlopen(url) f = open(file_name, 'wb') meta = u.info() file_size = int(meta.getheaders("Content-Length")[0]) print "Downloading: %s Bytes: %s" % (file_name, file_size) file_size_dl = 0 block_sz = 8192 while True: buffer = u.read(block_sz) if not buffer: break file_size_dl += len(buffer) f.write(buffer) status = r"%10d [%3.2f%%]" % (file_size_dl, file_size_dl * 100. / file_size) status = status + chr(8)*(len(status)+1) print status, f.close()

Stackoverflow Reputation 心得

圖片
最近兩個禮拜迷上了 Stackoverflow ,也看到對岸文章說裡面的 reputation 是硬通貨,在以後找工作方面比學歷還有效,所以就開始衝積分,一開始以後覺得衝太慢,於是開了一個分身帳號,幫我 Vote up ,終於多衝了 120分,不過隔天就又完整的扣掉了,原來系統會偵測連續的 up vote 。 於是我就乖乖地回答問題,當然太難的問題也回答不了,只能搶在其他大鯨魚回答之前趕快PO出我的答案。 到了昨天積分終於超過 500分了。 (不得不說,這機制真是令人著迷~~) 偶然看見一個問題,覺得有點小簡單,或小白目,但那人的積分竟然有 600 分,好奇心驅使之下我就點入那人的 profile 看看,原來只問了三個問題,一個回答都沒有,但是因為其中一個問題是兩三年前問的簡單問題,也有很多 vote up ,所以積分就莫名其妙高了。 現在爭積分到底有沒有比較難呢? 看看以前的問題,有些很簡單很基礎的問題(甚至是程式語言本身 Tutorial 就有寫的),讓發問者得到上千上萬的積分。 當然,較難的問題因為理解的人比較少,所以按讚的人也比較少了。 所以單看一個人的積分高低是可能有所偏差的,還要看它積分的來源,到底是回答了怎樣的問題,或回答了多少的問題得到分數,或是僅僅問了一堆小白問題就得到分數的。 不過今天也有一個啟發,與其找最新問題回答來搶分,不如看完所有 vote up 或 frequency 最高的問題,增加自己的知識。

SyntaxError: Non-ASCII character '\xe3' ..... but no encoding declared

今天在StackOverFlow 上面問了這一個問題 http://stackoverflow.com/q/28898561/1686094 關於一個 demo 編碼問題的小程式 # -*- encoding : utf-8 -*- episode_title = "ザ・ロック(日本語吹替版)".decode('utf-8') print episode_title.encode('utf-8') 我問:為什麼這個腳本可以在 PyCharm, IPython notebook, IPython Qtconsole 成功運行,但是無法在 Windows 底下的 命令提示字元、以及 Ubuntu 的 terminal 運行?? 這個問題我從一開始接觸 python 就遇到了,不過今天才知道答案。經過神人秒回,我終於知道: 原來是第一行 # -*- encoding : utf-8 -*- 的 encoding 後面多了一個空白,把空白去掉 # -*- encoding: utf-8 -*- 就好了....... 其實它錯誤訊息有說明我沒有宣告 encoding 了 (我自以為有宣告,只是不合格式,所以python 就不知道我有宣告了)

Stackoverflow 網站提問

今天早上在 Stackoverflow 網站 提問有關 Google App Engine 的問題 ,雖然有一個人回覆,可是還沒有解答問題。 想一想以後,覺得自己都沒在 Stackoverflow 上回答過問題,於是就嘗試找個問題來回答看看。 當然是找我最熟的 Python,看看別人最新發問的問題,點了幾個未回答的問題來看,找了個最簡單的打算要回答,不過還沒想出解答前就發現有三個人回答了~ 看來看去,原本以為自己的 Python 程度應該可以算中等,結果大概只能回答最簡單的問題~ 看來有很大進步的空間阿! 幾乎沒幾分鐘都有人提出有關 Python 的問題,也難怪我的問題只有一開始發問時有人回答,後來就沒人回答了,因為被連續不斷的新問題給擠到沒人會看到的地方了........ 我的問題是Google App Engine 下載 blobstore 的檔案,如果檔名中有中文字,那就無法正常下載,而會出現 Blobstore 裡面的 "Key" 當作網址。 咦~ 之前不是在弄 Django 嗎?怎麼改用 webapp2 了? 恩,這也是沒辦法的阿,網路的範例都是用 webapp2 ,想學的話只好學 webapp2 了。

在 Google App Engine 建立 Django project

圖片
之前學 Google App Engine 時看了幾部 Youtube影片,說明如何把 Django 開上 Google App Engine,要裝 django-nonrel 什麼的,看起來好像難度不大。 自己嘗試用 PyCharm 開新的 Google App Engine + Django 專案,不過依據他的預設,卻是連最簡單的 Hello World 都開不起來。 上網都找不到正確的解法,於是覺得該是放棄肥大的 Django,而改用webapp2 以及 jinja2,畢竟之前看Udacity 的GAE課程( Web Development Online Course - Udacity )就是用這個當作教學。 花了點時間學了簡單輕巧的 webapp2 以後,今天打開了一本講解GAE的書,偶然發現裡面竟然有講解 Django 看了一下,覺得講的很好,他說可以直接用 Google App Engine SDK 裡面的 django-admin.py 來建立Django 專案。 python "~/google_appengine/lib/django_1_5/django/bin/django-admin.py" startproject myproject 輸入後,沒出現任何提示,而目錄下多了一個目錄,可見是成功了! 不過後來出現種種失敗,就要放棄時,最後偶然間發現我專案目錄下的 settings.py 檔案裡面最前面竟然是 """ Django settings for myproject project. For more information on this file, see https://docs.djangoproject.com/en/1.7/topics/settings/ For the full list of settings and their values, see https://docs.djangoproject.com/en/1.7/ref/settings/ """ 這是 Django 1.7 的  settings.py  檔案,但我 App Engine 卻是使用 django 1.5 libr...

牙醫第二階段國考題 Anki 檔案

這陣子聽老師上課總是講到國考題這個會考,那個也會考。 於是就花了許多時間把考選部下載的第二階段國考題,從96年度到103年度的題目放進Anki 裡面,方便查看。 完成以後查詢發現,有些老師說國考有考的東西是查不到的,當然有可能是95年以前的國考題有考過,畢竟老師當年所讀的國考題,也許真的有出過那些題目。 這次做Anki 檔案的時候,是希望用Python 處理這些考古題的PDF檔,直接轉成Anki 的格式。 畢竟學了一年多的python ,對自己也有一些期許。 之前是用PowerGREP 加上 Editpad 來一步一步慢慢做,這次花了很多時間寫CODE,體會到所謂的「魔鬼藏在細節裡」,許多次的嘗試皆以失敗告終,途中也上 Python 台灣的Facebook  社團問人有關Regex 的問題。 果然是有人帶會比較快,我自己測試了一個下午,明明用 RegexBuddy 都可以成功,但是轉成Python 的Regex 就失敗,另外單獨隔離程式碼測試也是成功的,結果經社團網友指導以後,才發現我多了一個引號,把字串當變數來用了。 這次發現二階國考的重複題目頗多,貌似遠多過一階國考。雖然題目很多,但應該還是比一階國考容易通過。 附上下載連結: https://ankiweb.net/shared/info/1107496948