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

2012年12月5日 星期三

心得:Taipei.py 2012 11 月聚會

這是我第一次到 創立方 參加活動
交通指南講得很清楚:「從東門站3號出口左轉直走到金華街,只要3分鐘即可到達政大公企中心」
結果我還是迷路了 …
真的!不要懷疑,3 號出口一走出來就直接左轉,往小巷子那邊一直走過去吧!
不要傻傻的先右轉走到大馬路再左轉 …

對於這次聚會地點的印象就是:
  • 雙投影幕耶!椅子弧形排列圍繞講者,效果似乎還不錯!
  • 可能天氣太冷、地點較遠 、沒有正妹店員、然後很多人跟我一樣傻傻的迷路 等等因素,出席的人數較少
  • 會議室空間較大,人數雖然也不少了,可是因為填不滿,所以看起來略為冷清

這次的演講由 Pinkoi 的創辦人/技術長 Mike 開場
演講內容提到了該平台現況(7k+ 的設計師)
以及使用的一些技術:
  • 圖片放在 amazon、有使用到 ec2
  • git 版本控管
  • Nginx + Gunicorn
  • Django -> 僅使用到 url routing 功能
  • Memcache
  • CouchDB
  • RabbitMQ (用來協助處理低優先權的工作,如:與ibon溝通、寄送 email)
  • 自行開發匯款給設計師、列印發票的自動化架構

我認同 Mike 大大提出來的的三個觀點:
  • User first
  • Tech. (用技術解決人力問題)
  • Done is better than perfect
受限於時間,我認為 Mike 大大的演講屬於點到為止
有些細節還是不太清楚,可惜演講後結束我又到處閒聊
沒有辦法請教一些問題 Orz



第二場演講是由 marr 大大向大家介紹 Plone
我有找到大大分享的投影片:
(所以可以不用節錄重點了 XDDD)
Plone 提供的 solution 很乾脆,也很專業
感謝 marr 大大開拓了我的視野 Orz







微。演講是由正。妹 mosky 分享她撰寫的新工具: enhancedyaml
其實我對 YAML 並不熟悉,記得都是在套件的 config 檔案會見到這種格式
有空再來研究研究!
畢竟我都用 markdown 在寫部落格了 … 認真理解一下 YAML 應該不為過 …



本月的聚會結束得較早一點點,或許是沒有用餐的關係?
不過我還是努力的湊熱鬧、當跟屁蟲、聽八卦

回家的路上緊跟著一群大大們回家
受到精神感招後,看來我該去報名 pyconf 2013 的志工了!

補充:
1. marr 大大有針對 Plone 的 scalibility 在 python.tw簡要的說明
2. Pinkoi 其實辦公室就在創立方內!(而且正在徵人)
3. 其實這次 Taipei.py 跟團隊的行程是衝到的 … 我當然是選擇參加 python 了!(握拳!)
(狀態顯示為一個月沒寫 python)
4. 我如果再一直寫不出文章,這裡就要變成 Taipei.py 心得文部落格了 Orz
(上一篇還被 keith 大大抓包~)
        5. 原來這裡有 Taipei.py 的 聚會歷史 可以直接找到講者的投影片跟資料
        (糟糕,下次不能用講者的投影片充心得文的版面了 Orz)

2012年11月8日 星期四

心得:AppWorks Demo Day #5

圖片來自 AppWorks,可以點此觀看 出場團隊簡介



前天我參與了 AppWorks 第五屆的 Demo Day,老實講,我很感動很佩服
我先在簡單此整理我所找到的資源:



加入一間新創公司 剛好滿一年左右
我參與過了三次的 AppWork Demo Day,心境卻有著非常大的差異:
  • 第一次,可以說是創業前期,抱持的想法是要來找有趣的東西,思考尖銳,自以為看得很清楚
  • 第二次,自身牽涉其中,嚴格來講,DEMO Day 前就是一直寫程式跟 DEBUG,這件事情一直做到當天清晨
  • 第三次,我好像看得懂比較多東西了,我知道他們的努力,他們面臨的情況,另外一方面也能夠明顯看出他們哪裡做不好或是做得很好

我想要從另一個觀點來聊聊 DEMO Day,他能帶來的效應有:
  • 「推」團隊趕快想出、做出東西
  • 訓練團隊表達、行銷能力
  • 提供團隊與其他人(創業者、專業使用者、創投、)社交、互動、甚至媒合的機會
  • 整場 DEMO Day 就是一個大型的行銷活動,宣傳團隊跟 AppWorks 本身
    老實講,是否能藉由單一活動博得很多主流媒體的版面,我認為這不是那麼重要
    好的東西,透過日積月累的動腦筋行銷,自然而然就能夠推廣出去,時間早晚的問題罷了!

就我的觀點,「創意」這一件事情並不是觀看 Demo Day 最需要考量的地方
創業不是僅只是創意競賽,他其實最大的成分叫做執行力競賽
我甚至認為 Demo Day 上面呈現的「產品」本身也可以不是最大的重點
台上的講者所呈現出來的熱情、團隊的向心力跟合作能力才是最重要的
如同 Jamie 所提,需要 5-10 年網路公司才會逐漸成熟
對 Demo Day 的團隊們不宜太苛刻

這次的 Demo Day 中,各團隊的的商業模式較為穩固,甚至有很多人已經算是創業的小鳥或是老鳥了
就 presentation 這一件事情,我個人認為:
  • 1/4 表現方式不佳或是根本內容上就不恰當,很可惜
  • 1/2 能夠講出自己想要表達的東西,不過表達方式如果想要說服我,仍然小有進步空間
  • 1/4 表現佳!
抱歉,其實我自己很也毒蛇、苛刻啦…
但是就是曾經參與其中,我才會知道「把產品做好」以及「上台講清楚」這兩件事情其實並不容易做好
舉例來講,我的團隊講的其實也是屬於還不行的那一群(上台的版本算是可以了,練習的時候,我聽得想切腹)
(可以參考這篇文章:心得:PIPOSEA @ Appworks Demo Day #4)

取其優點學習,注意其缺失叮嚀自己
隨時問自己「如果是我的話,我會怎麼做這一個產品?我會怎麼 present 我的東西?」
這是我希望自己能夠做到的
新創團隊需要鼓勵,可以批評,因為這也是讓大家成長的好方法
如果只是無建設性的謾罵,就可以省下來了


備註:
最近團隊在進行腦力激盪思考下一個 Project
提 idea 時,總是會有讓大家大笑,覺得很蝦的東西
但是靜下心來仔細想想,卻又往往有其可行性
如果只是一直負面的打槍別人,那麼團隊大概也想不出、或是能夠理性的思考出比較有趣的東西了
創業的夥伴們,共勉之!YO! (直銷?

2012年10月30日 星期二

心得:Taipei.py 2012 10 月聚會


這是我第一次到 果子咖啡 參加活動
對於此地的印象就是對
宅宅工程師的聚會非常友善:
  • 要吃晚餐的話,有兩杯飲料、一份果凍、一份主餐,對於腦力消耗大需要吃粗飽的人有所滿足
  • 宅宅 工程師的襯托下,女性店員氣質佳,看了心情就好 >///<
  • 提供了場地跟器材的協助(其實這一點才是重點啦!)
儘管我上個月沒有參加到 Taipei.py September Meeting
不過我剛剛找到「覺得用 Python 的都是好人」的講者 Tim Hsu 的 投影片 及另一位大大的 筆記
(同感啊~
用 Python 的男生都是好人,女生都是正妹

對於本月有關 ML 的演講,老實講,我聽不懂
儘管如此,其實我認為能夠在活動中跟同樣是 Python 的愛好者聊聊,才是最大的收穫
在這一篇紀錄性質文章的結尾,感謝本月講者 c3h3 、感謝活動舉辦人,並且附上投影片 Orz