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 明年更好!




2013年1月8日 星期二

心得:檢索 PTT 的資料


我所撰寫的一個小玩具 =口=

前言


近期因為新專案的關係,需要嘗試去分析 PTT 特定看板的資訊
於是我陸陸續續撰寫了一些小程式:例如「推文分析器」、「發 P 幣機」、「PTT 尋寶機」
本文將針對「PTT 尋寶機」的開發,分享自己的心得! 以下先簡要的列出一些我對 PTT 的觀察:
  • PTT 的看板與文章,其實都有對應的 Web 網頁 (兩者之間有時間上的誤差)
  • 每篇文章的 Web 網頁中 <pre> … </pre> 之間的內容就是文章原文
  • 每篇文章的 Web Url 都不重複
  • PTT 的 Web 介面,可接受 1~2 秒間隔的 query 頻率(我沒有 try 到底線)
  • PTT 的看板有文章數限制,對應到 Web 網頁的話,大約有 900 頁左右(頁數或變動)
  • 透過 PTT 的 Web 介面連到已刪除的文章時,伺服器會回噴 404
  • PTT 上的控碼跑到 Web 網頁會呈現亂碼,壞掉!
  • 因為有「修文」的情況,所以文章的內文格式會「非、常、不、固、定」

心得


而在製作 「PTT 尋寶機」的實務上,我的心得為:
  • 我採取透過 Web 介面檢索文章,並沒有使用 telnetlib 透過 telnet 進行檢索(懶惰!)
  • 我並沒有使用 Scrapy 來協助抓取文章,而選擇自幹
    • 時間有點趕,沒空玩新玩具了 Orz
    • 加上我之前其實有寫過一些 Checkers 去鎖定交易文 … (爆!)
  • 推薦使用老字號的 httplib2 … 雖然我覺得他也有些小問題 Orz
    • 如果是抓取一般「正常的英文」網頁,其實我推薦使用 pyquery,支援直接填入 Url 當參數,然後就可以使用類似 jquery 的語法直接取得內容,方便度最高
    • 如果是抓取一般「正常的各國」網頁,其實 requests 寫起來很順手,讀取抓到的值時還會根據 header 自動做 decode 的動作
    • 我會建議使用 httplib2 是因為 PTT 的 Web 網頁編碼為 Big-5 ,且可能包含一些壞掉的控碼字元。因此,無論在做 decode 或 encode 時,都必須要手動加上 "ignore" 的選項,不然一遇到那些壞掉的字元就會噴出 exception … 。而 pyquery, requests 在使用上較為不方便(恩 … 後者也是支援讀取 socket 的 raw data 啦 … ),所以我就繼續使用 httplib2 了。( 我猜測 Scrapy 應該會對這種包含壞掉的字元的資料來源有處理的函式?)
  • 對於 parse data 而言:
    • pyquery 很方便,一句話就可以從網頁中抓出文章內容:
      • article = d("div#mainContent div pre").text() #possible be None
    • 對於之後文章的 parsing 我採用「硬幹」 + 「regular expressions」,其實如果後者強的話,就一切都沒問題了 …
  • 對於資料庫文章與 PTT Web 介面文章的同步而言,我採用懶人政策:
    • 每天看看最近 100 篇文章有沒有變動
    • 當有人要下載指定文章時,我才會將該文章同步到最新狀態

補充


資料庫我使用 mongodb,因為我常常亂改欄位(攤手),反正就一個極簡單 collection 而已
我並沒有使用專業檢索用的套件去分析文章,抓出關鍵字等等
我僅只是將資料庫內的文章做一些社交上的簡單統計
然後開了 nginx + gevent + bottle 的簡單組合提供 Web 介面
就完成小玩具了!(其實迴響還不錯 XD)

有趣(發人省思?)的社交分析

過程中,技術困難點大概還是在抓資料這一件事情
雖然我前端也卡了不少時間 … ( 囧rz 我不會寫前端啊啊啊
我是用 google 寫的啊
效能的話,我則是完全沒有優化 XDDDD
玩具的目的很簡單,就只是協助板友備份文章、以及提供查詢自己的資料
以使用率來看,不會有讓伺服器有什麼負擔的可能性
兩天的使用情況是不重複訪客 800 人瀏覽(畢竟是耳機、音響還算小眾市場)
總之,寫個小玩具,能讓我多摸到一些 python 的 module 及被強迫摸前端的東西
然後又能創造出一些價值給板友、鄉民
也算是皆大歡喜了!

新版的個資法實在非常嚴厲
各位如果有撰寫相關程式請務必小心 Orz
雖然我自認此服務,不營利、不為蒐集特定對象而寫且純粹出於善意
但是我還是願意提供反檢索功能 (目前是沒有人跟我說他不要被檢索啦 … )
歡迎有興趣的大大與我一起交流相關技術 ~~

-----------------------------------------------------------------
2014.05.28 本文補充說明:

由於 ptt 的 web 版在 2013 年有多次的改版
所以本文內容已經不適用現在的情況
只能當做是一個記錄

目前 ptt 的 web 版已經是輸出 utf8 編碼的內容
且作者、標題、推文等等資訊都已經被存放在特定的 xpath 路徑之內
所以可以用  pyquery 等套件,用類似 jquery 的方式輕鬆取得內容

又,上述說明了這麼多
其實強者我學長 c3h3 已寫好 crawler 且 open source
需要的朋友請取用!

https://github.com/c3h3/PlaYnlp-Corpus/tree/master/crawlers/ptt_crawler


活動:Taipei.py 2012 12 月聚會


這是我第二次到 果子咖啡 參加活動
或許是因為 … 天氣冷?今天反常地,場地大約只有八九分滿
沒有像十月份那樣誇張地爆滿

本月的講者為在趨勢科技擔任 Architect 的 Walter Liu 大大
演講的內容為 Celery 的簡介與應用
我對這個題目還蠻有興趣的,演講的內容對我非常有幫助
聽過演講後,我打算將手邊的 Project 在下一階段嘗試使用 Celery 看看

投影片在此:




本週在只有一位講者的情況下,演講時間排太短了有點小可惜
應該要請 Walter Liu 大大多講一點的 XDDD(以上純屬玩笑,講者很辛苦的)

由於我已經報名參與 pyconf2013 的籌備
因此會後就與 CCC 聊了一下註冊組的情況
(後來我也加入註冊組了 … 算是被洗腦成功?)

這次的聚會收穫:我又認識了兩位朋友(真是不錯啊~某替代役教官+長得很像我大學某學長的 openstack 大大)


吐槽自己一下:
話說,這篇超低質量的文章在幹嘛啊?
要不是有 Walter Liu 大大的投影片
本文就像多餘的註解一樣沒用 XD