2017年12月10日 星期日

[重要] 搬家囉

感謝眾多朋友的支持,在 Blogger 也用了三四年,但是逐漸對 Blogger 的格式和使用方式感到很厭煩,想使用更簡潔的 Blog 又懶得架站,所以開始嘗試使用不同的 Blog 寫作.經過一番嘗試,應該會穩定在 Medium 開始新天地,請舊雨新知前往

https://medium.com/@bryanyang0528/

由於個人職涯發展的轉變與興趣,在新站 將有更多與開發,DevOps 相關的主題,以及關於雲服務或系統方面的研究.如果多讀點書的話也會放上讀書心得.再次感謝大家的喜愛.

2017年1月20日 星期五

[Graffitalk] Day-2 能動再說


剛開始做的時候,根本也不知道能做到什麼程度,能不能做起來,所以一切的準則都是能動就好.先做 POC (Proof of Concept)出來,程式碼東抄西抄剪下貼上,也沒特別包裝,伺服器也是放在現有的 VPN 主機上,靜態網頁直接用 google storage 擋著,就直接放到網路上給朋友試用.雖然事後也是花了一些功來重新調整,但是我認為在這個階段,趕快看到產品雛形比把code,架構都弄完整還要來得重要.一來是比較能想像產品的樣子,二來好玩不好玩有什麼要加強的也很快在心裡有底.

在做POC的時候最重要的是呈現自己產品(或服務或功能)的核心,確定這個服務或功能可行可用,再來將它優化.如何避免造成未來過多的技術債,就是邊寫邊優化.確定功能可行後,馬上變成可用的組件,未來添加新功能或改版時才不會造成太多負擔.

2017年1月18日 星期三

[Graffitalk] Day-1 ClientA 和 Server 和 ClientB 的糾葛


雖然以前也寫過 client - server的程式,但之間的關係就是很單純的API呼叫,沒有更複雜的互動關係.但是聊天室處理的的是眾多 client 端彼此之間的關係,中間透過 server 來溝通,有些看起來簡單的邏輯,認真追究都很傷腦.

2017年1月15日 星期日

[Graffitalk] Day-0 網頁RPG和 Socket.io


因為我喜歡玩RPG也喜歡有社交元素的遊戲,所以先從相關的專案開始著手,第一個找到的是一個PHP做的RPG網頁,玩法很像早期的MUD,透過靜態網頁切換來選擇行為,另外一個找到的專案就是這個 Browser Quest.這個遊戲畫面完全就是早期ARPG的風味,直接在畫面上與敵人戰鬥,也可以直接和畫面上的人聊天.
本來很有興致地想找人合作開發,但是一時之間也找不到人,就想說來翻翻code看有沒有辦法自己改.結果當然是完全不行.對於一個完全沒js html前端經驗的人來說,這根本是大boss等級的專案,而且還有動畫和地圖模組,果斷放棄這種幼稚的想法.

2017年1月8日 星期日

[Graffitalk] 前傳 (剛看完星際大戰前傳的後遺症)

有些讀者來信問我為甚麼很久都不發文了,主要是因為過去一年發生太多事情,到國外工作,遠距離戀愛,家人的事情等等,每天下班後就是耍頹廢,花了很多時間發呆,煮菜,看韓劇.過去三年之前碰了很多技術,為了解決技術問題,找了很多資料,通常最終都有個答案.但是最近困擾我的卻是沒有資料可以找的問題--下一步我到底要做什麼.

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.