2020年6月30日 星期二

Ubuntu 20.04 在apache上安裝ssl憑證


之前介紹過在Apache上安裝SSL憑證,

其實還是有不同的方法可以安裝SSL憑證,

例如免費的SSL :Let's Encrypt,

在 Ubuntu 16.04 中,

使用 Let's Encrypt 的安裝命令為:

sudo ./letsencrypt-auto --apache -d my.domain

不過在新版本的 Ubuntu 卻無法使用此命令,

這就是今天的主題:

Ubuntu 20.04 在apache上安裝ssl憑證

由於各方的大力推動,

目前大多數的網站都已經使用 SSL 憑證來增加安全性,

經費不足的可以透過 Let's Encrypt 取得免費的憑證,


安裝的命令很簡單,

sudo certbot --apache -d my.domain

安裝過程中,

會詢問幾個簡單的問題,

並提供使用者的 EMAIL ,

以及是否要將 http 網址自動 redirect 為 https 網址等等,

安裝成功後,

就能夠使用 https 進入網站。

一般來說,

憑證使用期限為三個月,

可在 Ubuntu cronjob 中,

執行:

sudo certbot renew --dry-run

就能讓系統自行更新憑證。

2020年6月24日 星期三

從SEO角度為基礎-如何撰寫一篇好文章


為了網站的流量,

最常提到的字莫過於 SEO 了,

今天就來論述:

從SEO角度為基礎-如何撰寫一篇好文章

何謂 SEO 

SEO 全名為 "Search Engine Optimization",

翻譯為中文稱之為 搜尋引擎最佳化,

目的很簡單,

就是為了網站流量。


撰寫文章前的準備工作

撰寫文章前,

有幾個重點可先釐清:

  • 帖子的目的
  • 讀者是誰

帖子的目的

文章的目的可以有許多種,

可以是開箱文、心得分享、教學文,

甚至抒情文等等,

重要的是要有重點有目的,

才能讓人有共鳴。

讀者是誰

就像寫信一樣,

要有對象才能寫,

程式設計教學文的話當然就是寫給程式設計愛好者,

旅遊遊記的話對象就是喜歡旅行的同好,

美食推薦的話,對象就是愛吃的觀眾,

有針對的特定對象,

就能吸引該類別的流量。

開始撰寫文章

準備工作完畢後就能開始撰寫文章,

在這個階段的主要的重點:
  • 圖片
  • 關鍵字
  • 類別與標籤

圖片

一篇圖文並茂的文章,

相對於密密麻麻的文字敘述,

當然為前者比較受歡迎,

同時也可以做為分享時文章的預覽圖片。

關鍵字與錨文字

一篇有重點的文章,

相對可以使用關鍵字來做為搜尋的依據,

在文章內容中可以圍繞著關鍵字來進行寫作,

也能夠以錨文字方式,

將站上相關的文章帶入。

類別與標籤

為文章做正確的分類並加上標籤,

除了幫助搜尋引擎得到正確的相關資訊以外,

也能將網站上相同類型的文章做個整理。

發表文章後的工作

文章發表以後,

幾個重點工作:
  • 社群網站分享
  • 內部連結新增

社群網站分享

許多部落格都有自己的粉絲團,

這些粉絲團中的同好可以是網站的固定流量,

發文後可以特別分享到社群軟體中,

讓這些同好們能得到通知新文章發表。

內部連結新增

隨著時間變化,

部分文章若已經不合時宜,

就能夠進行刪除,

或者新增了其他類似文章,

新增內部鏈結方式幫助讀者能夠找到相關文章,

這些內部連結也能夠告訴搜尋引擎,

文章在網站上的重要性。






2020年6月16日 星期二

搭配 Apache 安裝 Jupyter Notebook 範例教學


Jupyter Notebook 能夠讓使用者在網路介面下執行資料分析專案,

之前也介紹在Open edX 上面觀看Jupyter Notebook 檔案,

今天就來介紹:

搭配 Apache 安裝 Jupyter Notebook 範例教學

安裝以後會有哪些功能,


來體驗下各項功能,

開始前先確定系統是否符合安裝需求,

系統必須安裝 Python 3以上版本 或 Python 2.7 ,

pip install jupyter

若是單純本機使用的話直接執行:

jupyter notebook

即可,

要使用自己域名的話,則執行:

jupyter notebook --ip=0.0.0.0

接著安裝 apache2:

sudo apt install apache2

在/etc/apache2/sites-available 新增一組伺服器設定:

<VirtualHost *:80>
ServerName test.twshop.asia
ProxyRequests off
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http:// ip 位址:8888/
</VirtualHost>

使用 a2ensite sitename 啟用該server後就能夠使用,

由於使用了 apache 的反向代理,

故需要安裝 

a2enmod proxy
a2enmod proxy_http

否則會遇到底下兩個問題。




當然,

如果要使用完整功能的 Jupyter Notebook,

可能還需要進一步的設定才能正常使用,

但架設部分,

到此處已經正常運行:

這就是今天的主題:

搭配 Apache 安裝 Jupyter Notebook 範例教學




線上課程推薦-給非資訊科系學生的軟體工程課程


繼上次推薦線上課程 - 助教培訓之後,

今天要來介紹的是軟體工程課程,

線上課程推薦-給非資訊科系學生的軟體工程課程

軟體工程的定義很廣,

可以是軟體專案管理,

也可泛指軟體開發技術,

舉凡由軟體開發過程,

甚至軟體的維護,

使用的一套(或者多種)方法都屬於軟體工程的範疇。

給非資訊科系學生的軟體工程課程是專門設計給非資訊科系,

但對於軟體開發有興趣的軟體工程基礎課程。


課程的大綱如下,

課程嘗試著以淺顯易懂的方式讓大家認識軟體工程,

讓大家了解軟體開發的流程,

也介紹較為新穎的開發方法 - Scrum,

除此以外,

軟體開發極為重要的其中一環 - 版本控制,

在此課程中也會介紹給大家,

並讓大家熟悉下 Git 的基本操作,

最後,

軟體測試也是軟體開發重要的步驟之一,

軟體品質越高,

當然 Bug 越少,

自動化測試也是一種趨勢,

雖說標題寫者給非資訊系的軟體工程,

但對於軟體工程不了解的人,

也可以藉以學習下何謂軟體工程。











2020年6月12日 星期五

在 Open edX 新增 Oauth Client


之前介紹過 Open edX 的第三方登入,

是作為 Client 使用其他網站帳號來登入,

今天就換個角色來看:

在 Open edX 新增 Oauth Client

簡單的講就是將 Open edX 做為一個 Provider ,

提供服務讓其他網站能以 Open edX 帳號登入,

前往 Open edX 的 Django 管理後台,

在 Oauth / Client / 中 選擇新增一個 Client


設定好 Client 名稱與 URL 設定之後,

提供 Client id 與  Client Secret 給客戶端的開發人員,

接起來就能夠透過 Open edX 的身分登入,

當然,

系統會詢問使用者是否願意提供權限給客戶端網址使用,





這就是今天的主題:

在 Open edX 新增 Oauth Client




2020年6月11日 星期四

Xblock模組 - Graded Jupyter Notebook Integration


上次介紹了 Jupyter Notebook Viewer ,

可以在 Open edX 上面觀看 Jupyter Notebook ,

這次的主題是:

Xblock模組 - Graded Jupyter Notebook Integration

之前提過 XBlock 是 Open edX 擴充功能的一個模組,

許多功能都能基於此模組進行開發,

Graded Jupyter Notebook Integration使用Docker和nbgrader創建一個Python環境

並自動對Jupyter Notebook進行評分,

將所得分數紀錄於 Open edX 成績簿中。

使用底下命令進行安裝:
sudo /edx/bin/pip.edxapp install git+https://github.com/ibleducation/jupyter-edx-grader-xblock.git

由於使用到 Docker 所以系統必須安裝 Docker CE,

新建一個名為 docker 的 group (或許安裝就建立了):

sudo groupadd docker

並建立一個使用者加到此 group 中:

adduser --no-create-home jupyter
usermod -aG docker jupyter

以 root 進入 visudo 並寫入底下命令,將 www-data 的使用者以此身分登入jupyter:

www-data ALL=(jupyter) NOPASSWD:/usr/bin/docker

分別在 lms/cms 的 urls.py 加入:

url(r'^api/jupyter_graded/',include('xblock_jupyter_graded.rest.urls',namespace='xblock_jupyter_graded')),

同時在 lms/cms 的 envs/common.py 的 INSTALLED_APPS 中加入:

'xblock_jupyter_graded',

最後進入 edx 虛擬環境進行 Database Migration

cd ~/edx-platform source 
../venvs/edxapp/bin/activate 
./manage.py cms migrate xblock_jupyter_graded --settings=aws
將 Open edX 重置以後,就能開始使用此模組,

當然使用之前必須先到 CMS ( Studio ) 中的 Advanced Settings找到 Advanced Module List

加入:

"xblock_jupyter_graded"

儲存後才能在大綱模式下在 Advanced 按鈕中找到

Graded Jupyter NoteBook



課程管理者需在 Studio 中,

將nbgrader Jupyter NoteBook 作業上傳,(如上圖)

而學生則需要下載作業並作答後,

上傳即可得到評分,(如下圖)


這就是今天的的主題:

Xblock模組 - Graded Jupyter Notebook Integration








2020年6月9日 星期二

Android Studio 4 安裝教學範例


時代不斷進步,

Android Studio 也不斷地再更新,

目前最新版本為 4.0 ,

今天就來介紹:

Android Studio 4 安裝教學範例


檔案大小接近 900MB,


安裝第一步就是歡迎畫面,

告訴使用者安裝精靈會協助安裝 Android Studio ,

並建議關掉其他應用程式


選用要安裝的元件,

與安裝的路徑,



選擇在程式集中的名稱後,

就能夠開始安裝,

安裝完畢後執行第一次的設定,



歡迎畫面會告知使用者需要安裝 Android SDK,

可選擇標準安裝與自訂安裝兩種,



選擇 Android Studio 的介面,

僅有 Darcula 與 Light 兩種選擇,


最後會告知使用者,

安裝精靈會幫使用者安裝列表中這些軟體,

包括了 Android SDK, JDK ,Android 模擬器等等 


安裝完成後,

就可以透過 Android Studio 進行開發。









2020年6月8日 星期一

Xblock模組 - Jupyter Notebook Viewer


Open edX 使用 Xblock 來擴充功能,

今天就來推薦一個:

Xblock模組- Jupyter Notebook Viewer

Jupyter 的名字來自於 Julia 、 Python 、R 三種語言,

創始者原有想法是要建立支援上述三種語言的平台,

演變至今已成為支援許多檔案格式的多功能平台了。


Jupyter Notebook Viewer 這個模組,

能夠開啟 Jupyter Notebook 的檔案,

讓管理者能分享 Jupyter Notebook 在 Open edX上,


安裝步驟如下:

1.
sudo /edx/bin/pip.edxapp install git+https://github.com/ibleducation/jupyter-viewer-xblock.git

安裝完畢後,

需要在

lms/cms 的 common.py 找到 "INSTALLED_APPS" 

新增 "xblock_jupyter_viewer " 

2.
在 lms/cms 的 urls.py 加入

url(r'^api/jupyter/', include('xblock_jupyter_viewer.rest.urls', namespace='xblock_jupyter_viewer')),


3.
再來就是到 Open edX 的進階設定(Advanced Settings)中找到 Advanced Module List 功能,

加上 "xblock_jupyter_viewer"

就可以在 cms 中的 Advanced 按鈕中找到此模組


4.
設定顯示名稱與 Notebook URL 後儲存,

系統就能預覽內容,

按下 Publish 按鈕就能分享給課程的學習者觀看



實際顯示的畫面如下,

不過很可惜的,

僅能觀看不能編輯

以上就是今天的主題:

Xblock模組 - Jupyter Notebook Viewer





2020年6月3日 星期三

暗黑破壞神3 - 秘術師塔拉夏的法理套裝


之前介紹了秘術師套裝德瑟雷的至高傑作,

接著今天來介紹的是:

暗黑破壞神3 - 秘術師塔拉夏的法理套裝

塔拉夏的法理主要依靠不同屬性的傷害來進行加成,

每種不同屬性的攻擊可以堆疊一層傷害,

最高可堆疊四層,

攻擊的同時也提高抗性 25% 持續 8秒,


在技能的選擇上,

懶人適用於蝕刻徽記

使用祕法奔流裂光波冰霜射線時,

每秒會附帶施放一個消耗秘能的技能,

還提高傷害 150%,

要特別注意的是主要使用的四個技能要選不同屬性的,

才能獲取傷害加成


而使用蝕刻徽記搭配絕命

可提高上述三個技能最多 325% 傷害,

裝備的選擇上,

使用不死鳥的華服兩件特效,

每六十秒可復活一次,



在項鍊戒指的選用上,

則使用無盡行旅

靜止傷害加成提高 100%

移動則受到傷害減半

使用華戒可少裝備一件塔拉夏的法理




寶石選用以保守為主,

使用了毀傷之禦、奧幻之石與太極

攻擊同時還能增加護甲值


卡奈寶香使用蝕刻徽記妮爾芙的誇耀與卡里尼的雷環

徽記就不多說,

設置妮爾芙的誇耀是為了提高隕石術的傷害,

卡里尼的雷環則是為了補足減傷