2013年7月8日 星期一

活動:PyConTW 2013


這張海報是我跟一個學妹(偷懶時)貼的,噢耶!



今年的 PyCon 心得很不一樣 =v=:
  • 心得文拖搞兩個月 …
  • 此次由原本純參加者的身分轉變為志工與小小(閃電秀)講者
  • 這次議程沒有現場聽到很多場,所以沒有辦法像去年的文章來拜所有的大神們 Orz
  • 取而代之,今年參與到了 PyCon 的籌備,能夠用另外一種角度來看看 PyCon
  • 過了兩個月,很多當時的小細節老早都忘了,但或許現在想得起來的部分是比較重要的也說不定(我當然要這樣講)


與其說今年我「參加」了 PyCon,倒不如說,我一起參加了「做」 PyCon 的(部分)過程
而在過程中,我看見了一群 Pythonista 用 Python 的思維做事情的方式:
  • 籌備團隊之間的 namespace 分組明確,且大家總能將自己的事情做好
  • 籌備時重要的 rules 皆明確地被寫在 handbook 內,遇到爭議時主席會跳出來重申重要的主張
  • 即便團隊已有自己的文化與規則,但是遭遇突發的狀況時,仍能夠調整規則並且應變
  • 或許同樣身為工程相關人員,同樣熱愛 Python,當遭遇問題時,大家永遠都在尋找在特定情況下的「one obvious way」去解決問題


這次 PyCon 有不少新的嘗試,像是採用三軌制,滿足各領域朋友們的願望;提供早餐餐盒,超級貼心的服務;提供財務協助方案,讓財務較為困難的朋友仍然能夠參與活動;晚宴規劃了表演與夜市,氣氛一級棒!

因為擔任志工,我也參與了
看都看不完的mailing list 籌備信件轟炸、場地佈置、發便當、會後聚餐 … 雖然當天聽到的 talk 少了一點,但是所認識的朋友與講者帶來的收穫是遠遠值回票價的!



擺攤時,各攤位都畫上了有趣的圖案 XD

自行吐槽 XD

這太強大了吧!

台北的 Python 社群 害我跳進 Python 坑的人都在裡面



事實上,我今年生日的時候,某 Taipei.py 使用 Pyra*** 框架的朋友有寄信向我邀搞:


Hi Joe,

你知道的,工作別太累,要留點時間投稿啊 XD

http://tw.pycon.org/2013/zh/blog/2012/11/21/call-for-proposals-zh/


生日快樂在哪裡 XD
還記得去年的心得文我曾寫到「希望某年我能夠熟 python 熟到能上台向大家介紹牠 ... Orz」
結果今年我雖然還是不太會寫 Python ,但是還是丟了個閃電秀上台 …






這是我第一次上台講閃電秀,非常緊張!
事前我大約又花了十來個小時準備投影片跟演講內容
花費的時間真的遠超過預估(我之前已經在 Taipei 介紹過 Bottle 了!)
講題跟內容我刻意一直用前陣子很紅的形容詞「微」當作梗,效果看起來不錯 XD
因為本人沒什麼技術能夠分享出來,所以也就只能簡單跟各位介紹自己使用 Bottle 的經驗
順便搞笑一下
檢討一下自己:
  • 原本是以 ipad 做簡報工具,不過轉接線與現場設備不合,會閃爍!好在後來有向 ccc 借到筆電 XD
  • 演講前缺乏預演,主要都是前一天睡覺前自己在心中默默演練演講情況
  • 因為使用的設備不是自己的,緊張,所以加快了演講速度,結果演講時間比預計短了要整整一分鐘 XD
  • 上台後完全就偏一側的麥克風講話,前一兩分鐘非常沒有安全感,整個人都龜起來
  • 講話吃了一些螺絲



意外在會場發現了一張必須倒著看的神秘貼紙 XD



最後的心得嗎?
這是我這半年多以來參與北部 Python 社群聚會後,所投入的一個大型活動
在此,除了認識許多熱愛 python 的熱血朋友們以外
我也發現有投搞演講就是有差,自己除了在準備時能夠整理思緒以外,現場演講亦是經驗的累積,而演講後也會有不少朋友們願意主動過來給我意見
(竟然有人說我可以出道了 XD)



付出,而後,得到更多更多。
怎麼看都划算!



夜市結束後,我與帽子的文青圖


週日與籌備的朋友、講者們聚餐後就回家(台南)去啦!




備註:
不嘴砲,Tainan.py 真的成立並且已經舉辦過聚會了!
點此 加入社群可以得知 Tainan.py 的最新消息!

2013年5月11日 星期六

活動:Taipei.py 2013 4 月聚會



這次的聚會下著大雨,即便如此大家還是風雨無阻地來前來參與!


這次的流水帳系列心得文,來的比較慢一點   =口=
因為恰逢公司搬家 與工作上的撞牆期 ... Orz

對於 The Manx 這幾個月以來的協助再次表達感謝!

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



Talk 1: Recoverable PDB

講者為在  The Manx 工作的果凍,是從高中就開始使用 Python 的大大
此議題超級有趣!竟然有人在翻 pdb 的 source code ,而且還講解給大家聽,這實在太棒了!
身為一個也是習慣使用 pdb 方式來除錯的人,此演講內容相當具有參考性

這次演講最可惜的地方是由於設備頻頻出問題,使得過程經常被中斷
可能會使聽眾較難集中注意力 ... Orz
補充:其實我平常 debug 用的 tool 是 pdb++
他除了相容於 pdb 以外,還支援語法上色、自動補全、以及一些額外的功能
相當推薦一試! (額外一提,我使用 bottle 是從不開 debug mode 的!) 


Talk 2: NLTK

講者為  Rueshyna ,帥氣的正妹講者一名

此議題我個人很感興趣,因為目前執行的專案接下來極有可能要去做 text mining
於是就當作吃大補丸般的認真聽講了(握拳)

此演講是有 錄影 的,有興趣者可以參考之。

演講時 demo 的 data source 是來自 stackoverflow 的標題
所以講者也得出了一些有趣的結論 XDDDDD
(有興趣的朋友請參考影片吧!我不能亂爆雷啊 !)



閃電秀


分別由 Kilik 與 Keith 帶來 RunSnakeRun 及 Ipython Notebook 的介紹
前者可以圖形化 profile 後的結果,讓人一目了然的了解程式慢在哪裡
後者則為一便捷的 web 介面,可用來分享程式碼,及讓人 Try 程式碼!


這次聚會最後的重點,就是與一群志同道合的朋友一同討論 PyLadies 的未來(這好像不是我們這群 Py豬哥該討論的事情??)

本次聚會除了認領到一個在趨勢當研替的強者我學弟以外,也初次遇到 PyConTW 註冊組的老大 jack ,趕緊向他拜碼頭一下!聚會時,每次遇到從新竹遠道而來的 CCC (這次還有另一位朋友),就覺得非常的熱血 。抱持著這個想法的同時,我所在的公司已於近日從台北搬遷到台南了,所以之後 Taipei.py 的聚會我可能會較少出現吧!但我也希望改天如果出現的時候,能讓人也會對 Python 的社群有熱血感 XD ... 無論如何,秉持著取之於社群回饋於社群的想法,之後我就在台南嘗試組織類似的聚會吧!(就叫做 Tainan.py 吧!)


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 (或我)報名!

2013年2月27日 星期三

活動:Taipei.py 2013 2月聚會


這次的場地是由 The Manx Entertainment Group - Taiwan 提供
場地實在是非常的夢幻,以後若能都在這邊舉辦,那就太好了 XDD
The Manx 對我來講是一間神秘的公司,網頁上所寫的關鍵字:
Online-Game, Python, Django, HTML5 都好吸引人啊!



這次第一場 talk 的講者為 Sean 大大
講的主題是:「如何運用 MyHDL來幫助硬體設計者達到快速的驗證和重整」
Ha Ha Ha …
(詭異的笑容,因為聽不太懂 XDDD)
因為是新場地第一場 Talk,所以設備有點沒 Ready,打亂了幾次演講的節奏
由於聽不太懂,所以只好繼續發揮寫這篇文章的目的,整理演講的資料出來:


第二場是 Tagtoo 的 陳建勳學長(appWorks) 分享使用 GAE 的心得
難得遇到從一開始就使用 GAE 並且到現在的前輩 XD
因為沒有搜尋到投影片,所以附上一個疑似是學長所寫的部落格:
任務日誌 (內容好多 GAE 與 Python,真棒!)


第三場的 lightening talk 是由 c3h3 大大主講
主題是:不用寫程式也可以玩 Machine Learning --- orange 簡介
講者就直接一邊演講一邊 live demo 了,強大!
之前我有想要稍稍 survey 一下 data mining 等等之類的東西
有也看到 orange 卻不知如何入門
這次有機會直接看到專家「玩」給大家看,實在受益良多! Cool!


會後與大家聊了一陣子,遞送上我目前負責專案的名片,
(只有)名片本身大受好評 XDDD
值得一提的是,我總算遞上了我的名片給 mosky,感謝她為我的部落格帶來流量
本部落格透過 google 關鍵字進入,排名第一的組合是: python mosky 與 mosky python
是的,並不是 Taipei.py ,我也不知道為什麼 … 囧rz
事後,得知隔天閃光參加 pinkoi 的設計師聚會也遇到 mosky,真是太巧了!


總之,這次新年後、新場地、新報名系統 的 Taipei.py 非常的成功!



筆記:Python 使用 Boto 將照片上傳至 S3 (加上存取限制)

Basic

前一陣子在實作一個供使用者上傳照片的功能
想當然爾,現在應該比較不流行自己 Host 這些照片
於是我使用了 Amazon S3 的服務來解決這個問題
  1. 想單純玩看看 S3, Amazon 本身的 AWS Management Console 就很好用了,支援上傳、下載、設定權限 …
  2. 想在 Command Line 的環境下玩 S3,s3cmd 是一個方便的工具,推薦一玩 …
  3. 至於我的需求,是使用 Python 自動化地完成上傳照片的工作,因此 boto 成為了我的首選,使用方式就請直接參考文件吧: An Introduction to boto’s S3 interface

若是要用 2. 3. 的方式,記得產生 AWS access key and AWS secret key 即可
以上講的內容都沒什麼特別的(若無其事的吐槽自己?)

Public vs. Private

Boto 提供了一些包好的 function, 能使用 Access Control List (ACL) 的存取機制來管理 S3 上的檔案
有需要使用的朋友可以自行參閱 Boto 的 文件

補充說明一下,AWS Management Console 介面所提供便捷的檔案「權限設定
其實背後也是用 ACL 的機制來管理檔案

對我而言,我想要實作的功能是:「將照片傳到 S3 後,設為公開,不接受外連」
因此,我先透過 AWS Management Console 將整個 bucket 設為公開:
-> 點選 Properties -> 選擇要公開的 bucket -> 按下 Add more permissions 
-> 新增 Everyone 使用者 -> 勾選 List (Read) 的權限
接著,接著繼續操作:
#使用 Amazon S3 Bucket Policy 的存取機制來設定外連的限制
-> 點選 Edit bucket policy -> 填入以下範例(需修改)
{
  "Version":"2008-10-17",
  "Id":"http referer policy example",
  "Statement":[
    {
      "Sid":"Allow get requests referred by www.mysite.com and mysite.com",
      "Effect":"Allow",
      "Principal":"*",
      "Action":"s3:GetObject",
      "Resource":"arn:aws:s3:::example-bucket/*",
      "Condition":{
        "StringLike":{
          "aws:Referer":[
            "http://www.mysite.com/*",
            "http://mysite.com/*"
          ]
        }
      }
    }
  ]
}
範例來自 官方菜單

如此一來,簡單的上傳與基本版防外連功能就完成了!
補充:記得上傳時幫照片設一下 meta data,諸如 cache-control 之類的屬性,以節省開銷 XD

2013年1月29日 星期二

活動:Taipei.py 2013 1 月聚會


這次的場地仍然是在 果子咖啡
就聽演講而言,本月應該算是非常讓人滿足的
表面上是 one talk + one lightening talk
事實上是 one talk + three lightening talk XDDD



第一場 talk 的講者為 Cyberlink 的 Kilik Kuo 大大
講的主題是 Python 的 MRO (Method Resolution Order)
這主題挺有趣的,也需要動點腦想想
(沒意外的話,我想我應該不會碰到這個問題 XDD)
Kilik Kuo 大大的比喻很有趣,「貴公司」的梗也讓人莞爾 XD
我尚未找到投影片(放在 google document ?),不過有找到了 Kilik Kuo 大大的 slideshare 可供追蹤(?)

2013.07.30 Updated: 投影片連結 在這 !感謝本人留言 Orz




接下來的 lightening talk 是由 WhosCall 團隊提供
他們實在是很有活力的團隊,「走著瞧股份有限公司」也令人印象深刻 XDDD
演講內容主要是分享:從純 client side、建構 server side、 GAE 移至 AWS、改以 python 開發、使用 mongodb 的經驗



這次的自我介紹,有使用 slide 引導大家回答些問題,效果很好
參與者都因此談蠻多的(有人喜歡也有人不喜歡縮排 XDDDD)

意外的是,我竟然遇到了另外兩位也是使用 Bottle 的朋友 =口=
這實在太高興了啊啊 XDDDDD
雖然我只有用 bottle 寫過幾個小玩具
但是還是與兩位朋友相談甚歡 : )



這次的 Taipei.py 大成功!
(下次要換地方!請加入 Taipei.py 的 Meetup 進行報名吧!)


2013年1月14日 星期一

活動:WebConf 2013

這是兩天以來,我唯一拍攝的一張相片!
我恰巧坐在第一排,看到這張具有張力的圖後
身為銀魂愛好者,只能夠乖乖拿出相機了 …

(所以說,我雖然年紀也不小了,但是還是跟大學生頻率很搭的 …)



感謝

這次的 WebConf 對我個人來講,算是 plurk 大大大聚會
難得有此機會一睹大大們的風采!
對於所有舉辦者、講者、參與者的付出,我在此表達謝意 Orz

觀察與建議

一進到會場,報到的流程堪稱順暢
袋子內的紀念品小冊子,實用而好看
蜘蛛與各種動物的 logo 設計給人覺得有活力、有趣而印象深刻
號碼牌上的豬與胡蘿蔔,貼心而能促進效率
我想,這次的活動商業上的贊助商不算多,可能也因此票價不低
不過會議該有的規模,跟體驗算是有辦出來了!
整體演講內容的話,我覺得仍有點小可惜
Web 的主題太發散了,必然難以真正深入特定主題之中
但也因主題 跟正妹 很廣,所以可以擴展宅宅工程師的視野 >///<

我的小建議是,或許下次可以嘗試更加發揮 WebConf 的優勢
讓 正妹 設計師與宅宅程式人能夠有互動的機會
無論是透過聯合的講座或是安排更多能夠串接兩者的議題
而對於「專案開發方法」、「Web 新創公司發展」方面的議題,我個人還想要聽到更多 XD
(己機嘴乎溜溜~對不起,我一直在許願 Orz)

沒重點的簡短心得

原本鎖定要多聽有關設計的場次
想要了解設計師在想什麼
結果第一場去聽 wordpress 發現只能用站的
而且聽完之後,我還是不懂設計師在想什麼 Orz … (hire me 還蠻酷的 XD)
看來我抱著莫名其妙的目的去聽演講,心態果然是有問題 … (去念心理學比較快啦 XD)
我下定決心:「我不要站兩天,我要舒適的坐兩天!」 =口=  (明明就是懶惰 XD)


之後的所有場次我就都待在大廳了 … 以下為大廳的超快速心得:
(建議創業者聽聽看的場次,我使用藍色的字標示出來!)


  • 熱心大大們所整理的懶人包 在此
  • Making it big in web. (開發 web 的遠大前程)
    • 睿智而有演講經驗的講者,值得學習!(輕鬆,節奏慢而內容發人省思,讓人意猶未盡)
  • 面向網站經營者及網站用戶的個資法衝擊
    • Useful!第一次聽到雙人演講,兩個講者說話快而條理分明!(個資法入門,創業者強烈推薦!)
  • 無廢話 DRBD + Heartbeat 實戰
    • 真的無廢話,如教科書般精準的向大家介紹知識,我喜歡!(沒聽過此主題的可聽聽看,聽過喜歡再去買書!)
  • 你們都誤解了,網路是很安全的!
    • 很好的資安入門,演講的水準高!(就算對資安已有點 sense,此演講也值得一聽,檢查是否漏掉一些觀念)
  • 借力使力的乾坤挪移大法 - 以使用者為中心的設計決策奧妙
    • Nice Talk ! 這就是我想聽到的演講,我想聽更多啊啊啊!(推薦一聽)
  • 網站分析?我小的時候覺得自己會
    • 很「真誠」的經驗分享! (算是使用 GA 的經驗談跟醒悟!)
  • 網站效能調整-網站系統篇
    • 講者很全面性地講解了超多東西(使用 php, mysql 者皆建議一聽)
  • 錯失過的機會
    • 精彩而具有參考性(沒有推不推薦的問題,是必聽啊!)
  • A brief introduction to SPDY - 邁向 HTTP/2.0
    • 這 … 這是網路科班出身的吧!?神人 ihower 講解得非常的好啊! (略懂 http 者必聽)
  • 建置 PHP 應用程式的秘密配方
    • 雖然沒在寫 php 還是被這樣的火力展示嚇到了 Orz (web programer 必聽)
  • 敏捷 Web 開發之 Python 工具菜單
    • 文雅的介紹 python,但是廣告打得略大 XD (推薦對 python 有興趣者可聽聽看)
  • TypeScript 開發實戰:開發即時互動的 HTML5 WebSocket 聊天室應用程式
    • 務實而有用的演講(使用微軟解決方案者或需要開發大型 javascript 專案者推薦一聽!)
  • 打造愛料理開發及營運團隊
    • 誠懇、條理清晰、台風穩健,同樣身為創業者,我只能說佩服(有在 run 專案者都必聽)
  • 火狐又老又舊又不夠潮,誰還在用啊
    • 滿滿的熱誠讓人認識火狐(有興趣者可聽聽看)
  • (Hacker's) Best Practice - The Upload
    • 有在看銀魂的 大學生,我非常看好這顆橘子的發展,口條跟演講技巧及內容,以後一定會更好!(如題,有實作上傳功能者,可以聽聽看,藉此檢查一下自己的網站)


微議程的話,我個人最喜歡的是:
  • thegiive - 關於 Release 的二三事
  • Gias Kay Lee - FSM FTW!
  • danix - 國內雲端主機 VPS 經驗談
其實 Alansun - You are here 很 cool,可是機器有問題沒有 demo 出來!Orz



以上,以第一次辦來講,這樣的規模超強大的了,祝 WebConf 明年更好!