原创 碼雲 Pages 搭建

因爲一直在寫博客, 就向着搭個 GithubPages 來展示, 一直都聽說別人用它來搭建個人博客, 但一直停留在聽說的階段. 最近想着沒事搞一搞, 也看看它到底是個什麼東東. 不過咱一個寫中文博客的, 就想着在碼雲上搭一個, 順便還能被百

原创 MySQL 數據恢復

前言 前兩天因爲沒注意的誤操作, 直接把某個數據表清掉了, 心慌慌. 怪自己學藝不精, 當時整了一下午也沒把數據找回來. 當晚回來閉關研究, 終於在凌晨1點多整出來了, 特此記錄, 以備不時之需. 對於 MySQL 數據的備份, 主要有兩種

原创 由 go orm 引發的探索

前言 今天遇到了一個 bug, 是 golang 的orm導致的. 使用了gorm框架. 通過實現Scan與Value可以將數據庫中的 json 內容解析出來, 免除了 字符串再解碼的步驟. 當時報錯的代碼大概是這樣的: type Test

原创 beego 優雅重啓

前言 最近在寫 go 的項目, http 用的 beego 框架. 因爲 go 不想 php, 每次代碼改動都需要重啓服務, 所以代碼發上線之後, 如何重啓服務就成了一個問題. 如果強行重啓的話, 不光在重啓期間的所有訪問都被拒絕了, 而且

原创 nginx 端口轉發

概述 這兩天在寫 go 項目, 一個 HTTP 服務器. 之前寫的是 php 項目, nginx 監聽80端口, 根據域名將請求分配給不同項目. 現在換了 go, 自然也想延續這個操作, 畢竟都是跑在同一臺服務器上. 那麼問題來了, 我的n

原创 搭建本地 HTTPS 環境

前言 之前寫自己的網站時, 申請過免費的https證書. 最近想在自己本地搭一個, 結果忘了當初證書是怎麼來的了. 本來想着去申請個免費的證書, 但想了想, 我只需要在自己本地能使用就行了, 我自己的環境, 那當然是我說了算了. 只要能夠將

原创 GO 文檔筆記

前言 最開始寫 GO 的時候, 發現方法的註釋並不支持@param, @return等參數, 搞得我都不知道該如何給自己的方法寫文檔說明了. 而且網上搜了搜也沒有搜到教程, 甚是鬱悶. 今天找到了GO內置的文檔工具: godoc. (我用的

原创 GO 切片實力踩坑

概述 GO 語言的切片這兩天用了用, 可以支持切割數組的中間部分. 但今天使用中, 出了 bug, 查了半天, 發現是切片的問題, 簡單寫個 demo 復現當時的情況: package main import "fmt" func ma

原创 GO 的方法集

前言 之前在寫 GOdemo 的時候, 寫了這麼一段程序(大概意思): package main type Test struct { } func (test *Test) print() { println("test fun"

原创 計算矩陣中全1子矩陣的個數

前言 最近被我大哥安利了一道算法題, 這道題說難, 還不至於我做不出來, 說簡單吧, 我還想不到最優解, 等把最優解告訴我之後, 我還正好能理解. 我甚至曾經怯怯的認爲, 這題就是我哥專門給我找的, 嘿嘿, 心中說不出的小歡喜. 題來了,

原创 如何將數字轉換成口語中的文本串

概述 今天突發奇想, 寫一個將數字轉換成中文字符串的函數. 並不是將 1234 轉成 '1234' , 而是將 1234 轉成 '一千二百三十四'. 本來以爲很簡單, 寫下來之後發現還是有些坑的. 嘗試 因爲我是在寫完最終版本, 回過頭來整

原创 長整數的乘法運算

概述 都知道, 計算機中存儲整數是存在着位數限制的, 所以如果需要計算100位的數字相乘, 因爲編程本身是不支持存儲這麼大數字的, 所以就需要自己實現, 當然了, 各個編程語言都有大數的工具包, 何必重複造輪子, 但我還是忍不住好奇他們是如

原创 私有 composer 包創建

引出 在實際使用中經常會有這樣的需求, 多個PHP項目中用到了同一套代碼, 如果靠複製粘貼的話, 不光代碼不好維護, 而且同步起來也麻煩. 但是可以用 PHP 的包管理呀, composer. 那新的問題來了, 我們自己私人的包, 並不想開

原创 隨機數是如何生成的

引出 在現實中, 會有拋硬幣猜正反的操作, 硬幣要麼是正, 要麼是反, 在揭曉之前, 我們誰也不知道它現在的狀態. 而這, 是因爲其中存在着很大的不確定因素, 如拋硬幣的力度、拋硬幣的角度、接硬幣的力度和角度、硬幣的重量、當前風速等等. 但

原创 TCP 三次握手的意義

概述 在網絡的傳輸層協議中, 存在着兩大悍將: TCP 和 UDP . 從前, 我傻傻的以爲自己對他們雖談不上精通, 但還是知道的, 但是, 我錯了, 我被自己問住了, 我傻了. 啥也不是. UDP (這裏爲了介紹簡單, 就不提數據在傳輸過