轉址到 jute.PW

前言

基於 2 個原因,我把原本的部落格網址,轉址到 JUTE.PW。

  1. 成本與 App 熟悉度:原本的部落格租用的主機空間,將於 2022 年 8 月 27 日到期,有點小氣的我,本來還想說再轉到 Blogger 上,…但,坦白說,WordPress 實在太好用,我已經決定運用這支 Web App 讓自己的部落格生根,不再移來移去的。另外,原本的域名每年租用費用偏高,我找到網路上 DYNADOT.COM 提供的域名租用服務,目前每年租用價格是 19.99 美元,即使已經比較便宜,仍比新域名:JUTE.PW 每年 9 美元高出 2 倍。
  2. Google Domains:JUTE.PW 可以在 Google Domains 這邊註冊租用,雖然,價格不一定是最便宜的,然而,將近 1 年的體驗,我認為 Google Domains 幾乎都能夠滿足我的需求。之前的頂級域名,Google Domains 的服務尚未納入與提供使用者進行註冊租用,假設 Google Domains 願意納入且價格合理的前提下,我可能就不會有 Redirection 的想法與規劃。

設定 Redirection 前

  1. 預備好新域名與主機:我目前沒有另外花錢,因為,新域名:JUTE.PW 是老早就註冊好,而主機 (Web Hosting) 也是之前花錢租用的,我做的事情,就是把 WordPress 這支 App 安裝上去,並且設定好 SSL。
  2. 匯出文章:2 個網站都用 WordPress 架設,所以,非常容易就可以搞定,從舊站 WordPress 後台的【工具】→【匯出程式】,將舊有的部落格文章匯出。
  3. 整理連結:承上述,我會用文字編輯器把匯出的檔案開啟,用「搜尋/取代」的方式,把舊網站設定的連結,改成新網址。
  4. 匯入文章:到新站 WordPress 後台的【工具】→【匯入程式】,在接下來的畫面,找到「WordPress」後,安裝並執行程式,將上面 2 個步驟整理好的匯出資料,整個匯入並指定好使用者,基本上就可以搞定。
    redirectToJuteDotPw1
    redirectToJuteDotPw2
    redirectToJuteDotPw3

設定 Redirection

  1. Redirection 是一支 WordPress 的外掛程式,透過 Redirection 就可以輕鬆地將原本的部落格網址以 Redirect 的方式,轉到新域的網站。
  2. 上面提到,匯入/匯出文章過程中的內文連結設定,只要把 Redirect 寫好,讓 Permalink(靜態連結、固定連結) 也跟著 Redirect 的話,一開始影響並不會太大。如果舊域名與主機可以持續運作個幾年,基本上也應該不用太擔心。
  3. Redirection 安裝好,初次啟用會有一些動畫,可惜我沒有拍下來。不過,後續要找到這支外掛的設定頁面,只要在 WordPress 後台,滑鼠移到【工具】,就會跳出相關選單。(下圖)
    redirectToJuteDotPw4
  4. 所有的 Redirection 裡的設定,我只去做這個設定,基本上就搞定得差不多。(下圖)
    redirectToJuteDotPw5

後記

  1. Google Search Console 的移轉設定:雖然我目前並不常去看 Google Search Console 的資料,但,我認為有必要進行這個步驟,讓自己走過的路,比較容易找到脈絡。
  2. 整併 mattQQ 的文章:mattQQ 的文章以 Coding 為主,我mattQQ 最近有點忙,我找他商量一下下(真的就一下下,可見 mattQQ 的忙碌程度),mattQQ 立馬答應整併。整併的時候,保留 mattQQ 的文章所有權,並且幾乎所有的文章都整理到 Coding 一大類裡面。
  3. 參考網址:Redirection – WordPress plugin | WordPress.org

安裝與運作 Contest Management System (ubuntu Server 版)

前言

本次紀錄所使用的是在 VirtualBox 上安裝的 ubuntu 18.04.6 LTS Live Server,本篇紀錄大致分為 3 個部分。
第一階段,在 VirtualBox 上安裝 ubuntu 18.04.6 LTS Live Server。
第二階段,在 ubuntu 18.04.6 LTS Live Server 上安裝 Contest Management System。
第三階段,執行並測試 Contest Management System。

在 VirtualBox 上安裝 ubuntu 18.04.6 LTS Live Server

以下是在 VirtualBox 的安裝過程截圖(點圖至 Flickr 瀏覽相簿)
ubuntu18.04.6LiveServer

在 ubuntu 18.04.6 LTS Live Server 上安裝 Contest Management System

以下是在 ubuntu 18.04.6 LTS Live Server 的安裝過程截圖(點圖至 Flickr 瀏覽相簿)
contestManagementSystemonUbuntu18.04.6LiveServer

指令大致如下:
sudo apt update

sudo apt install build-essential openjdk-8-jdk-headless fp-compiler postgresql postgresql-client python3.6 cppreference-doc-en-html cgroup-lite libcap-dev zip python3.6-dev libpq-dev libcups2-dev libyaml-dev libffi-dev python3-pip python3-setuptools python3-tornado python3-psycopg2 python3-sqlalchemy python3-psutil python3-netifaces python3-crypto python3-six python3-bs4 python3-coverage python3-mock python3-requests python3-werkzeug python3-gevent python3-bcrypt python3-chardet patool python3-babel python3-xdg python3-future python3-jinja2 python3-yaml python3-sphinx python3-cups python3-pypdf2
//python3 的相關套件很多。
//如果想要方便的話,比較建議可以用 Shell Script 的方式服用。

wget https://github.com/cms-dev/cms/releases/download/v1.4.rc1/v1.4.rc1.tar.gz

tar xvf v1.4.rc1.tar.gz

cd cms

sudo python3 prerequisites.py install

exit

cd cms

sudo python3 setup.py install

sudo su – postgres

createuser –username=postgres –pwprompt cmsuser
//這個「設定密碼」等一下會用到。

createdb –username=postgres –owner=cmsuser cmsdb

psql –username=postgres –dbname=cmsdb –command=’ALTER SCHEMA public OWNER TO cmsuser’

psql –username=postgres –dbname=cmsdb –command=’GRANT SELECT ON pg_largeobject TO cmsuser’

exit

sudo vim /usr/local/etc/cms.conf
//用剛才「設定密碼」把 your_password_here 置換掉。

cmsInitDB

cmsAddAdmin -p [password/密碼] [name/帳號名稱]
//直接下指令,設定 CMS Admin 的帳號與密碼:cmsAddAdmin -p [password/密碼] [name/帳號名稱]

cmsLogService

cmsAdminWebServer

執行並測試 Contest Management System

要從目前的主機,登入到 VirtualBox 上的 CMS Server 前,請確認一下網卡的設定。
第一步是先到 「Oracle VM VirtualBox 管理員」→「建立」一張新的網卡。
installingContestManagementSystemonUbuntu18.04.6LiveServerEp19

再到 VirtualBox 上的 ubuntu 18.04.6 LTS Live Server 的「設定」→「網路」→「介面卡 1」,改成「僅限主機介面卡」。
installingContestManagementSystemonUbuntu18.04.6LiveServerEp20

ifconfig -a
//看一下 [CMS Server 的 IP] 是什麼,本次的例子所顯示的是 192.168.56.102。

從另外一部電腦,去 ping 一下 [CMS Server 的 IP] 看看。

從另外一部電腦,用 Web Browser 登入設定好的 CMS Server 試試看,本例為 http://192.168.56.102:8888。

開啟 Web Browser,在網址列打 http://[CMS Server 的 IP]:8889 進入 Admin 頁面。

使用剛才新增的 Admin 帳號、密碼登入。

新增 Contest。

新增 User。

選擇加入 Contest 的 User。

回到 VirtualBox 上 CMS Server 的 Terminal,執行 cmsResourceService -a。

開啟 Web Browser,在網址列打 http://[CMS Server 的 IP]:8888 進入 Contest 的首頁。

後記

  1. Contest Management System
  2. Welcome to CMS’s documentation! — CMS 1.4.rc1 documentation
  3. Have fun!

安裝與運作 Contest Management System (ubuntu Desktop 版)

前言

縮寫同樣都是 CMS,Contest Management System 與 Content Management System 的全名僅有一字之差,但功能上卻有很大的不同。

今天要架設的是 Contest Management System,而官網上的介紹是這麼寫的:

CMS, or Contest Management System, is a distributed system for running and (to some extent) organizing a programming contest.

CMS has been designed to be general and to handle many different types of contests, tasks, scorings, etc. Nonetheless, CMS has been explicitly build to be used in the 2012 International Olympiad in Informatics, held in September 2012 in Italy.

安裝過程截圖

以下是在 VirtualBox 的安裝過程截圖(點圖至 Flickr 瀏覽相簿)
contestManagementSystem

安裝流程

跟安裝過程截圖的步驟不太一樣,我回顧之後,把整個流程大致分成 3 個階段:

  1. 第一階段,多半是在 Terminal 下指令就可以搞定。(下面的紀錄中,我使用 gedit 編輯 cms.conf 才跳出 Terminal,如果選用 vim 編輯,那就可以持續待在 Terminal 裡)
  2. 第二階段,絕大部分是用 Web Browser 做完後續的設定。
  3. 第三階段,算是一個小 Lab,這個 Lab 可以測試能不能從其他的電腦主機,登入同一區域網路裡,我們所安裝、設定與開始運作的 CMS。

第一階段

wget https://github.com/cms-dev/cms/releases/download/v1.4.rc1/v1.4.rc1.tar.gz

tar xvf v1.4.rc1.tar.gz

cd cms

sudo apt update

sudo apt install build-essential openjdk-8-jdk-headless fp-compiler postgresql postgresql-client python3.6 cppreference-doc-en-html cgroup-lite libcap-dev zip python3.6-dev libpq-dev libcups2-dev libyaml-dev libffi-dev python3-pip python3-setuptools python3-tornado python3-psycopg2 python3-sqlalchemy python3-psutil python3-netifaces python3-crypto python3-six python3-bs4 python3-coverage python3-mock python3-requests python3-werkzeug python3-gevent python3-bcrypt python3-chardet patool python3-babel python3-xdg python3-future python3-jinja2 python3-yaml python3-sphinx python3-cups python3-pypdf2
//python3 的相關套件很多。
//如果想要方便的話,比較建議可以用複製貼上的方式服用。

sudo python3 prerequisites.py install

sudo reboot

cd cms

sudo python3 setup.py install

sudo su – postgres

createuser –username=postgres –pwprompt cmsuser
//這個「設定密碼」等一下會用到。

createdb –username=postgres –owner=cmsuser cmsdb

psql –username=postgres –dbname=cmsdb –command=’ALTER SCHEMA public OWNER TO cmsuser’

psql –username=postgres –dbname=cmsdb –command=’GRANT SELECT ON pg_largeobject TO cmsuser’

exit

cd /usr/local/etc/

ls

sudo vim cms.conf
//如果沒有先安裝 vim 套件,也可以跟截圖下一樣指令:sudo gedit cms.conf。
//重點是記得用剛才「設定密碼」把 your_password_here 置換掉。

cmsInitDB

cmsAddAdmin [name/帳號名稱]
//[name/帳號名稱] 的意思是給即將要新增的 Admin 一個名字,在這裡我的命名是:cmsadmin。
//下完指令後,請記下新增 Admin 後系統給的密碼,等會兒就會用到。
//也可以直接下指令,指定一個自己認為好記的密碼:cmsAddAdmin -p [password/密碼] [name/帳號名稱]

cmsLogService

cmsAdminWebServer

第二階段

開啟 Web Browser,在網址列打 http://localhost:8889 進入 Admin 頁面。

使用第一階段新增的 Admin 帳號、密碼登入。

新增 Contest。

新增 User。

選擇加入 Contest 的 User。

回到 Terminal,執行 cmsResourceService -a。

開啟 Web Browser,在網址列打 http://localhost:8888 進入 Contest 的首頁。

第三階段

sudo apt install net-tools
//我習慣下 ifconfig 這道指令,而 ubuntu 的 Desktop 通常要另外安裝。

ifconfig -a
//看一下自己設定的 IP 是什麼,本次的例子所顯示的是 192.168.56.101。

從另外一部電腦,去 ping 一下 CMS Server 的 IP 看看。

從另外一部電腦,用 Web Browser 登入設定好的 CMS Server 試試看,本例為 http://192.168.56.101:8888。

後記

  1. Contest Management System
  2. Welcome to CMS’s documentation! — CMS 1.4.rc1 documentation
  3. 本次紀錄所使用的是在 VirtualBox 上安裝的 ubuntu 18.04.6 LTS Desktop,如果不是很有把握,我也滿建議先在 VirtualBox 嘗試看看。
  4. 滿建議使用 ubuntu Server 版本,並且在上頭安裝 SSH,以遠端登入的方式,完成 CMS Server 的安裝與相關設定,這一次,我是安裝完 Desktop 版本之後,才再安裝 SSH 充當 Server 使用。
    connecttoMyCMSServerwithSSH

把我的部落格從 Blogger.com 轉移至 GitHub

GitHub 可以免費架設部落格,引發了我的興趣,我花了大概 6 個小時,去瞭解 GitHub 的部落格相關基本知識、遷移 Blogger 到 GitHub 的方法。

我選用 Hexo,至於轉換上的心得,我自己實做後的感想是 Blogger 直接轉換成 MarkDown 還算容易,但是在整個部落格文章的轉換上,先把 Blogger 轉到 WordPress.com 後,再匯出 WordPress 上的 xml 檔,接著,再使用 Hexo 做最後的轉移,反而是比較穩定的做法。

目前稍為看了一下文章,初步的發現是 Blogger 的文字特性(粗斜體、顏色)等等會在過程中跑掉,變成被斜線號(Slash)夾在中間的文字。