2013年3月29日 星期五

活動:Taipei.py 2013 3 月聚會

聚會結束後,走在路上,看到一台機車的安全帽長這樣 !!(Keith 的)



這次由 Tim 發起了「入場先收 50 塊,稍稍補貼一下茶水費」的活動
對於 The Manx 同時提供「人力、場地、器材、餐點」,只能說感謝了 Orz …

#本次聚會照片、投影片皆可至 Taipei.py 的 Meetup 社群 下載



Talk 1: Scrapy - 網路爬蟲框架

講者為在 Tagtoo 工作的 Theon 學長
演講專業而結合範例,讓人能清晰的了解到 Scrapy 此框架的威力
如果熟 XPath 的話,大概真的參數填一填,實作上不用五分鐘就可以寫出爬蟲了!
由於我前陣子有寫過爬 Ptt 的機器人,去擷取備份文章
對比於自己寫的 糟糕 程式,我馬上就能感受到了此一框架的優良架構
雖然我為 XPath 苦手,不過我想現在的瀏覽器都有相關的工具可供協助找到 XPath
之後若有機會,值得一試
另外,對於小型的抓網頁,讀取特定數值的程式
如丟關鍵字給 google,然後抓出搜尋結果的連結 … 這樣的應用
我蠻推薦使用 pyquery 來處理問題
直接使用:d = pq(url='http://google.com/')
接下來就可以使用類似 jquery 的方式存取 html 元素了:d("#hello") …

Talk 2: 先不談 Django,你聽過 Bottle 嗎?

講者 竟然 是我 XD ... 因為沒有辦法自己幫自己的演講給心得文
那我來檢討一下演講準備過程,與附上補充資料
因為近日專案極忙,這次的演講,我一直拖到演講前兩小時才把投影片做完
對我而言有許多第一次:
  • 第一次用 iPad 的 Keynote 做投影片
  • 第一次用 iPad + 轉接線 投影到螢幕
  • 碩論口試後第一次公開演講(當兵的時候倒是主持過很多次莒光園地 …
  • 第一次在社群中分享自己的經驗
我原本自以為可以用閃電秀的密度,快速的用 15 分鐘把該講的都講清楚
但是做出來投影片的品質太差,又沒有演練過 ... 所以就變成了冗長的碎碎念亂講 … 囧rz
對於這一點,我正在深刻的反省中 …

另外,使用 iPad 製作起來的過程雖然算流暢
但是在投影片內要插入超連結,頗有困難,且輸出成 ppt 或 pdf 以後,格式都容易跑掉
之後得多加注意此問題
這次來不及測試 remote 遙控投影片的功能,小可惜
不然就可以帥氣的走來走去了 …



會後補充:

再度推薦一下 gevent 社群的文件:Gevent Tutorial
值得一讀,讀了以後就會發現,在一般的 Python web framework 中
比較難以實作的 Comet 之類的功能,都能透過 gevent 輕易地達成

我記得 Appier 的朋友有問我 Bottle + gevent 能不能夠做效能調教?
(話說,您已經是此搭配的成功案例了:5000 qps …跪求 Bottle 進階演講)
雖然我不知道怎麼做,但我之前查資料時
有看到過 Douban 釋出與 Python 相關的投影片,或許仍可供參考(2011年的):



補充一下,對於 bottle 要提供 http auth basic 的話,可以這樣做:
def check_user(usr, pwd):
    acc_pw = { "user1" : "pw1", "user2" : "pw2" }
    return True if usr in acc_pw and pwd == acc_pw[usr] else False

@bottle.get('/admin/')
@bottle.auth_basic(check_user)
def test():
    pass
當然, auth_basic 的參數要直接塞 lambda 也是 OK 的
但是不建議用這個當會員系統啊 XDDDD

最後,至於為什麼我講的是 Bottle、用的是 Pyramid、大多數情況推薦的卻是 Flask 
這個傷心的問題就不要再問我了 囧rz  


PS. 這次演講後與許多朋友交換名片,聊: Web 框架、Testing、用數學變魔術的經驗 … 真的有 Level Up 的感覺!
您若也想來個常規或是閃電秀的演講,可以先加入 Taipei.py 的社群,然後直接找 Tim, Keith (或我)報名!