2016年9月18日 星期日

[Python] Callback Function 回調函數


大概有一個月沒寫 XD.其實在家裡寫部落格真的是很麻煩的事情,雖然買了 VPN ,但是一直斷斷續續連線不是很順,越寫越抓狂就算了.而且前半個月去美國出差,簡直樂不思蜀,寶貴的晚上時間也都不想拿來寫 Blog ㄎㄎ.話扯回來,之前和朋友聊天談到 javascript 中 callback 是很普遍的用法,但是因為 python 沒有強制使用 callback ,加上我書讀得少,一直沒有深入瞭解.

根據 wiki 的說法,callback 就是將一段可以執行的程式碼作為參數傳到其他程式碼中,然後可以在適當的時機被呼叫使用.用 python 的語言來說,就是把一個 function 作為參數傳到另外一個 function 中.聽起來很玄,但是實作起來到底長什麼樣子.


  • 首先這邊有個數列 my_list
  • 第一個 function - is_even:判斷傳入的數值是不是偶數,如果是偶數則回傳一個 boolean 值 True ,反之則為 False.
  • 第二個 function - count_occurrences:有兩個參數,第一個參數是要判斷的數列,第二個參數得放一個輸出為 boolean 值判斷式,最後回傳該數列中,符合判斷式的數值個數.

這樣做的好處是程式碼可以更加簡化,比如說我今天需要一些函數,分別可以計算奇數,偶數,判斷三的倍數五的倍數,透過 callback 的寫法,第二個 function 只需寫一次,透過代入不同的判斷式就可以切換不同的功能.(實作上當然也可以不用callback的方式,而是用代入參數的方式來判斷倍數)

更多的討論可以參考:知乎上的討論,雖然我覺得有些例子太複雜了XD 但是也不失為一種參考.


2016年8月8日 星期一

[職涯] 百發百中的履歷秘訣!履歷跟事業一樣需要經營,你/妳,有好好經營嗎?

圖片來源:wikipedia

想試試看寫一下聳動的標題能帶來多少流量 lol.前幾天跟朋友聊轉職的事情,朋友說他都不知道在工作中學到什麼,履歷要怎麼寫比較好.說實在,身為一個每年換一次工作的人,寫/投履歷算是相當有經驗XD.很多履歷教學都會著重在怎樣選擇履歷格式,要不要放照片,經歷要怎樣寫比較吸引人,但是有件我覺得更重要的事情反而比較少人提及,那就是履歷絕對不是要找工作前才開始寫的!

2016年7月25日 星期一

[Python] 簡易網站爬蟲 ( Web Crawler) 抓取公開資訊觀測站的資料 - Payload 和 Session (下)


上一篇說明如何使用session 和 payload 進入資料畫面,這一篇就會非常簡單的介紹怎樣 parsing 要用的資料.有大大提示使用Pandas 的 read_html 會輕鬆很多,但是我還沒試驗,等我試驗成功再來介紹.

2016年7月21日 星期四

[Python] 簡易網站爬蟲 ( Web Crawler) 抓取公開資訊觀測站的資料 - Payload 和 Session (上)



平常工作上沒啥機會用到,所以很久沒有寫爬蟲了.最近因為平常下班沒事幹某人有工作上的需求,看他每天人工複製貼上很辛苦,就來從操舊業一下.這次要抓的是公開資訊觀測站中,上市上櫃公司資料.上市上櫃公司資料可以依照產業別看到各公司的股東,地址,會計師事務所等基本資料,格式非常整齊,是個很好解析的資料.但是卻沒辦法直接從網址抓取,因為這個網頁有兩個特別的地方:
  1. 傳遞資料是用 POST 方法,而不是 GET.
  2. 網站有認 Session ,要在同一個 Session 中使用POST才能正確取得資料.
一些基本網站分析方式可以參考先前的拙作:

2016年7月15日 星期五

A Traditional and Fantastic Trip in West Japan (Day 1- Kamigamo-jinja)



This trip had been scheduled half a year ago. This was my first time to go to west Japan, so I was very excited and did a lot of homework about Kyoto. I heard from my friend that he saw many cute and interesting things such as cups, hand-made shoes, and cookies in the Japan-style hand-made market and I really like that. There are many little markets in Kyoto, but not open every day. After research the schedule of those markets and read a lot of blogs, I choose Kamigamo-jinja(上賀茂神社) to be my first stop on this trip.

2016年6月21日 星期二

[Spark] 利用 Spark 將亂七八糟資料格式的 Fortigate Log 檔轉成關聯式資料

圖片來源:http://www.fastcompany.com/1842000/company-chaos-you-dont-know-youre-creating

不論資料多雜亂,在做資料分析之前,總是先要整理成關聯式資料,這一段一直是分析中最麻煩也最惱人的一段,特別是當資料量大的時候,其中可能問題又更多了.這次遇到的麻煩是要固定將機器每天的 Log 檔轉成關聯式資料,聽起來不難,是很常見的需求,但是看了資料格式之後整個傻眼.

這樣的格式麻煩點在:
  1. 非一般的資料格式: 既不是關聯式資料,也不是 Json 格式(真的很想打設計這種 log 出來的人),沒辦法輕易地整理.
  2. 分隔符號不固定: 雖然後面的資料是用 = 做為key和value分隔,但是前面四個欄位不是,表示資料要分開處理.
  3. 資料欄位內有空格: 如果預設用" "當做每個欄位的分隔符號,會在這些內部有空格的地方吃了大虧,所以要另外寫工具來區別這種情況.
  4. 每筆資料有的key不一致: 這是最麻煩的事.例如有些筆資料有 location 這個 key ,但是有些資料沒有...,連 null 都不給.所以就算你處理完上面三件事,每筆資料的欄位長度還是不一樣.

2016年6月18日 星期六

[心得] 美國ESTA簽證申請流程


因為八月份要到矽谷出差,所以最近趕緊來研究一下怎麼到米國.美國於2012年10月2日宣布台灣加入免簽證計劃(以下簡稱VWP)。根據VWP,符合資格之台灣護照持有人若滿足特定條件,即可赴美從事觀光或商務達90天,無需簽證。其實還是要的,只是流程沒以前那麼麻煩.根據美國在台協會的說明:VWP允許來自38個參與國[1]符合資格的旅客,無須申請美簽即可前往美國洽商或觀光(B簽證之旅行目的,詳情請按這裏)並可停留達90天。惟停留天數不得延長,VWP旅客在美期間亦不得改變其身份,例如變更為學生簽證身份。若符合VWP資格之旅客希望申請美簽,亦可選擇申辦。旅客欲以VWP入境美國,須先透過旅行授權電子系統(ESTA)取得授權許可(若搭飛機或船),並於旅行前滿足所有相關資格條件。

2016年6月17日 星期五

[職涯] 給畢業生的話

畢業季到了,因為我家剛好也有一個應屆畢業生,剛好可以趁機說說想對畢業生說的話.
  1. 不要被自己的學歷給限制了.台灣太喜歡用單向價值觀來看人,但是世界是充滿各種可能的.身在台灣的大學畢業生,手上的選擇權算多了,當你羨慕人家用四年喚來台清交的文憑,那你可以設定自己在四年後走向不一樣的路.
  2. 如果不工作也能好好生活,那太棒了.你有很多時間做想做的事情,也可以不受薪水限制去做想做的工作.那如果逼不得已要上班的話,找個自己也有興趣的工作.有興趣的工作讓你有機會做得比別人更好,偶爾的加班也能當成自我成長學習,活得比較開心.
  3. 找工作最重要的是做自己,而不是委屈求全.很多人覺得面試是就是假來假去,面試官唬爛工作內容,公司福利,求職者唬爛自己的能力和意願,但是長期來說這都是不健康的態度.進入一個能接受你的環境,進去之後也會活得比較舒服.
  4. 人生不是只有工作.工作是為了生活,而不是讓生活被工作吞噬.工作固然有他有趣的部分,但那是我覺得那是在不得已需要工作的情況下從中找的好處.聽過斯德哥爾摩症候群嗎?因不得非得要工作,只好賦予工作一個更正當的含義,才能讓自己不受威脅的活著.
  5. 培養工作以外的興趣.如果工作剛好是你的興趣,那很好,如果不是認真建議培養一份.興趣可以讓你真正的放鬆和轉換心情.

2016年6月13日 星期一

[職涯] 廈門工作+生活攻略(三)上班要吃什麼


民以食為天,人可以不工作但是不能不吃飯(?).吃飯是很重要的.在園區裡面工作的好處就是不用為吃飯擔心太多(如果你不太挑食的話),每天中午可以到大食堂裡面吃飯,有飯有麵有自助餐任君挑選.因為是園區的廠商,相信食物的安全上應該是滿OK的.在食堂吃飯有滿滿當兵的感覺.

2016年5月31日 星期二

[職涯] 廈門工作+生活攻略(二)第一天上班該辦哪些卡

第一天上班的時候非常忙碌,一早就要填寫基本資料和簽一堆文件.大部分好的公司都會幫你辦好,但是有些東西一定得本人去辦理.基本上中國所有服務都綁定手機,如果需要方便的線上支付又要綁定銀行卡,越早辦好越方便生活.