Amo Chen

環境變數切換利器 - direnv

開發程式時常會設定各式各樣的環境變數,例如 DEBUG mode, PRODUCTION mode 等等環境變數,這時候除了在 .profile .bashrc 等檔案中設定好環境變數之外,還有另一種選擇 direnv

direnv 可以讓我們在切換資料夾時,自動設定好不同的環境變數,在離開資料夾時自動清除環境變數的設定,使用上相當方便。

Last updated on  Oct 4, 2022  in  Unix-like 命令列教學  by  Amo Chen  ‐ 2 min read

Python Celery 教學 (1) - 介紹與初次使用

Celery 是一套頗成熟的 Distributed Task Queue 解決方案,讓我們可以非同步(asynchronous)執行任務(tasks) / 工作(jobs) ,這種非同步的作法很常見於 Web Application 。舉個例子說明適合使用 Celery 的情況也許會更清楚,假設有一使用者需要透過 Web Application 匯出一份龐大的資料(可能執行時間很長,超過 30 分鐘),在這情況之下,我們也無法要求使用者一直開著該網頁不關,這時候比較好的作法就是利用非同步的方式執行匯出資料的工作,把工作移到背景執行,然後告知使用者工作執行完畢後會透過 Email / 即時通訊軟體通知工作完成,讓使用者可以回來下載資料,如此一來,使用者就不需要一直開著網頁佔用伺服器的連線數, Celery 就是應用在這種非同步執行的情況下。

Celery 目前已經被許多公司使用(詳見 Companies/websites using Celery ),其中較知名的有 Instagram, Gandi, Red Hat, Uber 等等,所以算是蠻值得一學的 Python 模組。

本篇將學習如何使用 Celery 。

Last updated on  Nov 22, 2023  in  Python 模組/套件推薦 , Python 程式設計 - 高階  by  Amo Chen  ‐ 4 min read

用 Docker 玩轉 PostgreSQL

最近學著使用 PostgreSQL 做些小應用,過程主要利用 Docker 幫忙建立 PostgreSQL 的執行環境,可說是相當方便,本篇就記錄幾則使用 Docker 玩轉 PostgreSQL 的筆記。

Posted on  Jul 10, 2018  in  用 Docker 架設服務  by  Amo Chen  ‐ 2 min read

Backend 淺談 iOS Universal Link

從 iOS 9.2 之後, Apple 推出 Universal Link 作為取代 Deep Link 的 iOS 平台上重導向的技術。如果對 Deep Link / Universal Link 不熟的話,以下這個例子應該可以幫助認識 Deep Link / Universal Link 。

「在 iPhone 的 Safari 裡點擊 Instagram 的連結後,發現 iOS 自動開啟 iPhone 裡的 Instagram APP 」

Deep Link 與 Universal Link 就是用來連結網址與 APP 的技術,不過隨著時間的推移 Deep Link 將會越來越少,因此只要先知道 Universal Link 即可。

Posted on  Jun 21, 2018  in  資訊技術探索  by  Amo Chen  ‐ 2 min read

Golang VSCode 開發環境建置 - 手把手教學

VS Code 作為 Go 的 IDE 其實相當方便,但由於初學者多半對 GOPATH 或 launch.json 的設定仍處於半生不熟的情況,對於環境設定都會感到棘手,因此本文特別將過程陳列出來,以期大家都能夠開啟一段愉快的 Go 旅程。

Last updated on  Mar 2, 2023  in  Go 程式設計 - 初階  by  Amo Chen  ‐ 4 min read

Golang HTTP FileServer 簡介

Golang 內建提供 http.FileServer ,可以方便地透過 HTTP 存取檔案系統(file system),例如以下程式碼執行之後,就可以透過瀏覽器打開網址 http://localhost:8080 瀏覽 /usr/share/doc 資料夾內的檔案。

package main

import (
	"net/http"
)

func main() {
	http.ListenAndServe(":8080", http.FileServer(http.Dir("/usr/share/doc")))
}

Posted on  Jun 4, 2018  in  Go 程式設計 - 初階  by  Amo Chen  ‐ 2 min read