為什麼我要搬家

前言 最近終於把自己的部落格整理好了,正式從wordpress換到hugo。 為什麼想要搬家呢?因為我覺得 原本wordpress很慢… wordpress 對 markdown沒有到很友善 看到appleboy大大也搬了 評估一下blog 其實用 static site generator 就好 在網路上輾轉得知(也是剛好最近在學golang), 知道有這樣名為hugo的玩具, 在它的介紹網頁 就大大的介紹自己是The world’s fastest framework for building websites。剛好也想趁這個機會更加學習golang(但其實都是在學Hugo XD) 於是,便開始展開了這場旅行 …

Go 學習筆記(6): 寫一個網頁吧!

我自己是PHP 後端工程師,常常在寫網頁、常碰Javascript , html , css 等等,所以,在學這個Go的過程當中,也來學習用go寫一個網頁吧! Go 與網頁常常有用到的一個套件就叫做 net/http , 他同時也可以做網頁的爬蟲,等等讓我娓娓道來~ 網頁版HelloWorld ! 1package main 2import ( 3 "log" 4 "net/http" 5) 6 7func viewHandler(writer http.ResponseWriter, request *http.Request){ 8 message := []byte("Hello …

Go 學習筆記(5): 非同步

學習Go 也到了一段時間了,來學習這個部分:多執行緒 如同我之前寫道其實如果要做很大量的東西應該要用非同步的方式… 在Go裡面,並發被叫做「Goroutine」,在深入淺出Go 這本書的定義:提供並發,暫停一個工作以啟動另一個工作。而且在有些情境下他們允許並行,同時執行不同的工作 如果你想要用goroutine 其實就在function 前面加一個go 的關鍵字 1func main(){ 2 go a() 3 go b() 4} 然而,由於我們使用到這個非同步的概念,所以我們無法期待method 可以馬上回傳結果,那是Go 去控制工作的進行與安排,所以Go裡面便多了一個概念:Channels,其實就加一個chan 這 …

Go 學習筆記(4) – 檔案

寫程式難免都需要與檔案做互動, 甚者還需要與資料庫溝通。這篇文章將紀錄Go 怎麼與檔案互動的部分…… 首先是讀取檔案! 1package main 2 3import ( 4 "bufio" 5 "os" 6 "fmt" 7) 8 9func main(){ 10 var numbers []string 11 file ,_ := os.Open("input.txt") // 使用open 開啟檔案 12 scanner := bufio.NewScanner(file) // 必須建立Scanner 這裡讓我有點想起C 13 for …

Go 學習筆記(3): 做套件給別人用

來到學習Go 的第三篇文章,在深入淺出Go 裡面有介紹套件的開發方式,要把他放到GOPath 裡面… 不過,那好像是很久以前Go的版本了… 現在,出現了go.mod 和 go.sum , 似乎就沒有那麼麻煩… 這裡簡介簡單兩個指令: go mod init {package name} 這個指令會建立go.mod 的檔案 go mod tidy 這個指令會去找你目前寫的go 檔案所引用的package, 去修改go.mod go.mod 有點像是composer.json 和 package.json 記錄著目前所引用的package 而 go.sum 是個天書, …

Go學習筆記(2): make a game

來到學習Go 的第二篇文章了,來學習一些控制流以及一些基礎東西吧! 條件式 在 Golang 寫條件式很簡單,就是寫個if 加個大括號就好 1// 這裡請記得 "{" 和 if 要同一行,之前自由慣了常常被這件事情雷到! 2if true { 3 // ...... 4} else if false { 5 // ..... 6} 7 8// 或者你可以使用 if 更短的初始化陳述句 9if count := 5; count>4 { 10 fmt.Println("count is ",count) 11} 另外有一個比較特別的是,if 區塊裡面的區域變數(使用到:=)是不能使用在if 外面的 …

Go學習筆記(1): HelloWorld

在之前寫到今年的計劃 當中,我就說到我想要學Go 語言。同時我自己也買了一本有關於Go 的書:深入淺出Go , 希望藉此督促自己有個比較完整性的學習…… 以下是我讀這本書以及學習的心得與筆記,可能有點無聊,高手請跳過、不過如果有看到錯的也請不吝指正! 首先,你要先去安裝好Go……. 程式組成 Go 語言的組成通常有三個部分: 套件子句(package main) import 相關陳述句 (import "fmt") 主要的程式碼 (func main(){......}) Hello World 程式! 讓我們先建立一個名為hello.go 的檔 …

談Python: Lambda, Map , Filter 及 Reduce

從大二開始研究怎麼當一名駭客之後,開始接觸Python, 出社會後也常常用Python 開發我個人的工具包,可說是這幾年來個人 Python 的功力大漲! 最近在邊寫邊查資料的過程當中,認識到Python的 Lambda,Map和Reduce 於是,就讓我寫一篇文章記錄這一切吧 ^^ Lambda 此 Lambda 不是 AWS的Lambda ,我也不知道為什麼這裡要取和AWS的Lambda一樣的名稱哈哈,總之他是一種Python裡面的表示式,可以更加簡便、更加Function programming 的呈現程式碼,不多贅述,我最喜歡 Show me the code了! 1# 通常我們定義Function是長這個樣子(順便我也想練 …

Redis筆記

最近在玩Redis, 記錄起來才不會忘! 利用Docker 迅速起一個redis container 你可以去官網按照他的說明下載redis, 但我這裡選擇用docker 來起一個簡單的redis 服務首先我的dokcer-compose.yml 是這樣寫: 1# ...(略)2### Redis Container #######################################3redis:4image:redis:alpine5ports:6- "6379:6379"7# ...(略)然後使用 docker-compose up -d 就可以起一個簡單的redis server, 你可以使 …

Python Paramiko 筆記

在以前公司工作的時候,有點忘了是遇到什麼情境,總之我就看到Python 有這樣的一個套件庫:Paramiko 話不多說,我們就給大家來看文件吧:http://www.paramiko.org/ 然後就結束這一回合(阿不是! 他是一個和SSH 有關的套件庫,是可以使用Python 直接在遠端給他執行程式起來… 啊寫文章的同時我就想到了!之前我們好像是要做那個資料庫備份什麼的, 然後有發現說有時server 會不夠空間backup , 所以後來我就用這個套件透過本機去連結遠端執行 df -h 的指令,以方便告訴我到底有沒有足夠的空間這樣…. 不然每次連線打指令實在很麻煩… 然後 , 我最喜歡的 …