實作 Flask 後端中的 Hash ID 需求

Hash ID

上個學期有個小組的學期作業,要寫一個雲端服務,
我們組的主題是實作出一個功能較多又比較兼顧 UI 的 when2meet

在實作分享功能的時候,
我們希望有一個頁面的資訊(一個叫做 meeting 的 model)可以用網址分享,
讓沒登入的人也可以看得到,
但是這樣的分享方式如果直接用 restful api 的標準的話,
直接使用 api/meetings/<meeting_id> (這裡 <meeting_id> 是整數)當網址來呼叫需要的 api,
會讓不相干的人直接在 <meeting_id> 打上數字戳進來

所以要使用 hash_id 來實作,
最簡單的方式是直接隨機 random 出一串字串當作 model 的 id,
但我總覺得這樣做很不舒服,
所以我選擇直接拿原來的 id 做 encrypt

Read more

使用 travis-ci 自動部署 Hexo Blog 到 GitHub Page

Hexo 部署到 GitHub Page

Hexo 部署到 GitHub Page 應該算是最常見的方式了
我之前都是照這篇最後面的方式部署
但我在去年決定改成使用 travis-ci 來幫我自動化的將部落格丟到伺服器上

我的 Hexo Blog git 架構

我延續了使用叫做 <username>.github.io 的 repository,
Branch 名稱與規劃如下:

  • Branch site: source,markdown 稿子
  • Branch master: 由 hexo generate 產生的靜態檔案(伺服器位置
Read more

Datasets

MNIST Series

MNIST

  • Image of handwritten digit
  • 60000 training examples
  • 10000 test examples
  • 28*28 grayscale images
  • 10 classes
Read more

Tcsh Prompt 個人化

最近學校好多作業都要使用系上的工作站
系上有提供能夠 ssh 進去的 Linux 跟 FreeBSD 空間
預設的 shell 是 tcsh
而且是很原生的 tcsh

多麼的原生呢?

Read more

使用 Docker 架設 DOMjudge

基於某些原因社團需要架設 DOMjudge,因為不想弄髒環境所以最後選擇建在 Docker 裏面
架設 DOMjudge 需要 3 個以上的 Container,Domjudge 官網上有幫我們整理好 Docker 指令要怎麼下

MariaDB Container

1
docker run -it --name dj-mariadb -e MYSQL_ROOT_PASSWORD=rootpw -e MYSQL_USER=domjudge -e MYSQL_PASSWORD=djpw -e MYSQL_DATABASE=domjudge -e CONTAINER_TIMEZONE=Asia/Taipei -p 13306:3306 mariadb --max-connections=1000
Read more

使用 Google Script 來管理 Gmail

Google Apps Script 是 Google 自己出的 Script,可以拿來串接 Google 各項服務的 API

上學期期末的時候其實就聽過系上社團學長說他有用這個在管理他的 Gmail,當然那個時候也是第一次聽過有 Google Script 這種東西

不過期末實在太忙了就沒有研究,然後放暑假 email 們也少少的所以也沒有想到

直到最近開學,直接被各種學校公告學習系統 email 轟炸,熊熊覺得可以來研究一下了

Read more