2020年9月30日 星期三

使用 GitHub 更新 Fork 專案的原始碼


在 GitHub 上可以 Fork 感興趣的專案,

當過段時間,

該專案有更新的時候,

要怎麼套用在目前的已 Fork 的專案中,

這就是今天的主題:

使用 GitHub 更新 Fork 專案的原始碼

要更新目前 Fork 專案的方法有兩種,

使用 git 指令

命令模式需要執行:

git remote -v  

git remote add upstream 來源專案網址 

git fetch upstream 

git merge upstream/master 

git push


使用 GitHub

登入後找到要更新的 Fork 專案,

點選 Pull request 按鈕,


左側的 base 必須為自己的專案,

右側的 head 必須為 fork 的來源專案,

如果只有顯示

master < -  master 

可點選右上方的連結 "compare across forks "

確認無誤後,

點選 Create pull request 。


為此次的 pull request 寫個註解,

就能夠送出 request。

如果都沒有衝突(no conflicts)的話,

直接 Merge pull request 即可。










 


2020年9月29日 星期二

Open edX 資料下載問題 404 Not Found 解決方案

之前提到過 Open edX 是一個開源的線上教學平台,

即使依照官方文件安裝完畢,

還是有許多細節需要管理者自行手動設定,

其中在教師頁面的資料下載中,

就有幾個檔案無法下載。

這就是今天的主題:

Open edX 資料下載問題 404 Not Found 解決方案

造成這個問題的原因無他,

因為 Nginx 預設的設定並沒有與實際檔案的路徑相符合,

只要解決路徑問題,

就能夠正確的下載檔案。

在 lms.env.json 中可找到成績下載的正確路徑為 /tmp/edx-s3/grades

此處不使用 AWS S3 作為儲存空間,

將檔案存在本地端:

ln -s /tmp/edx-s3/grades /edx/var/edxapp/media

接著使用編輯器打開 /edx/app/nginx/sites-avaliable/lms

找到 media 相關設定,

將其改為:

location ~ ^/media/(?P<file>.*) {

     root /edx/var/edxapp/media;     

     try_files /$file /grades/$file;     

     expires 31536000s; } 

location ~ ^/grades/(?P<file>.*) {     

    root /edx/var/edxapp/media/grades;     

    try_files /$file =404;     expires 31536000s; 

}


最後執行

sudo service nginx restart

套用設定,

就能正確下載存在本地端的資料。



 


2020年9月27日 星期日

Final Fantasy XV 最終幻想 15 新手入門指引

在角色扮演遊戲這個領域,

堪稱經典的除了仙劍奇俠傳以外,

最終幻想系列也屹立不搖幾十年,

另一個俗稱太空戰士應該也是耳熟能詳的,

今天就來介紹:

Final Fantasy XV 最終幻想 15 新手入門指引

雖說上市已有幾年時間,

其畫質並不遜色現今的遊戲,

遊戲一開始就有新手指引,

引導玩家快速上手,

搭配實戰演練更能體驗基本的技能效果

防禦能夠閃避來自敵人的攻擊,

若系統先出現紅色的防禦提示後,

按下防禦並接著按攻擊鍵就能夠進行"招架",

即俗稱的反擊。



戰鬥中按下 F 鍵,

可變移衝向敵人並加以攻擊,

甚至變移到周遭的高處吊掛來回復。




變移的攻擊要掌握需要多些練習,

其他武器對於敵人也有不同的效果,

因為抗性的緣故,

可利用數字鍵 1234 來切換不同類型武器,

敵人不善應付的武器就能給予大幅傷害。



除了利用武器進行物理打擊以外,

魔法向來都是遠距攻擊的主力,

不過在 Final Fantasy XV 中魔法是不長眼睛的,

是不分敵我的無差別攻擊,

而且裝備魔法與機器的時候,

變移破解是無法使用的

這兩點要特別注意。



既然名為角色扮演,

人物的 HP 在戰鬥時候就要多注意,

這時候就需要道具來輔助幫助回復狀態。



這就是今天的主題:

Final Fantasy XV 最終幻想 15 新手入門指引

Final Fantasy XV 屬於開放世界的設計,

戰鬥採即時動作,

相較於傳統的回合制,

會有不同的體驗。



2020年9月26日 星期六

侏儸紀世界:冥河龍

冥河龍 Stygimoloch,

屬於厚頭龍類,

學名意思為 " 冥河的魔鬼 "

比起其他的厚頭龍類,

冥河龍的頭頂比較小而平坦,

頭骨四周尖刺也比較多。


在侏儸紀世界:殞落國度中,

將主角 歐文與克萊兒 從牢中救出的就是今天的主角,

破壞了恐龍拍賣會的也是本尊,

雖說看起來攻擊性很強,

其實冥河龍是吃素的。

之前介紹過 侏儸紀世界:適者生存 的遊戲中,

屬於史詩級的恐龍。



在適者生存中,

技能分別為:

護盾攻擊、衝擊後逃跑、立即衝撞三種,

但很可惜的,

生命值稍低了些,

實用的程度不是很高。





 


2020年9月22日 星期二

使用 Apache OpenOffice Draw 系統流程圖範例

在軟體開發流程中,

從需求訪談,系統分析,系統開發,系統測試,

過程中產生許多圖表與報告,

系統流程圖也在此列之中屬於比較前期的工作,

今天的主題是:

使用 Apache OpenOffice Draw 系統流程圖範例

許多軟體都能夠繪製系統流程圖,

包括微軟的 Visio、OpenOffice Draw 等,

單純比較兩者,

當然是微軟 Visio 比較好用,

從成本角度來看則是 OpenOffice Draw 占優勢,

新增說明文字

上圖為一個系統流程圖範例,

繪製系統流程圖有幾個原則:

  • 流程基本上由上而下,由左而右為原則
  • 流程圖以實線或者虛線隔開每個個體
  • 盡可能將流程限縮在一頁中
  • 重複循環的步驟可用一個或數個流程代表
  • 書面文件的傳遞與歸檔不須使用人工處理符號
圖例說明:

每個實體(欄位),使用虛線隔開,

開始與結束均使用底下圖例,


以長方形來表示使用電腦處理,

例如查詢修改等等,


以底下符號表示人工輸入,

其他與輸入輸出相關的符號:


由上而下分別為:
  • 輸入或輸出的文件(或報告)
  • 表示人工輸入
  • 通用輸入輸出符號

除了上述的電腦處理以外,常用處理符號尚有:

分別表示:
  • 人工處理(例如:簽章)
  • 使用電腦周邊處理(例如:掃描)

有時候需要將資料儲存,

若是資料存於可直接存取的媒體上以下方範例的上圖表示,

例如:磁碟,光碟等

若資料存於循序儲存的媒體上則用下方範例的下圖表示,

例如:磁帶、錄音帶等等


這就是今天的主題

使用 Apache OpenOffice Draw 系統流程圖範例

透過幾個常用的符號,

清楚表達系統的運作流程,

讓客戶與主管能夠更明白知道系統的功能與運作方式。






 


侏儸紀世界:五角龍

 五角龍 ,Pentaceratops,

最早發現於新墨西哥州聖胡安盆地,

生存於白堊紀晚期,

距今7500萬年前到7300萬年前,

其學名的意思為 "有五根角的臉"。


五角龍身長約八公尺,

體重可達五噸,

身高約 2.7 公尺,

主要以蕨類、蘇鐵、針葉樹等植物為食,

使用喙狀嘴咬下樹葉。



 




2020年9月18日 星期五

Ubuntu 20.04 Pycharm 無法輸入中文

Pycharm 是一套強大的 IDE 軟體,

有時專案需要打中文,

卻發現無法使用,

今天教大家解法:

Ubuntu 20.04 Pycharm 無法輸入中文

首先到官方網站下載 JBR

解壓縮後待會會使用,

接著打開 Pycharm ,


到 Settings/Preferences 找到 Plugins 安裝 "Choose Runtime",


接著到 Help / Find Action...執行 Choose Runtime ,


稍微等待 Load 完畢後,

使用視窗最後 ... 按鈕找到剛才下載的資料夾找到 JBR ,

選擇 Install ,

Pycharm 會自動重新啟動


至此,

輸入中文的問題就解決了。







 


2020年9月15日 星期二

建立 AWS EC2 執行個體教學

雲端服務執行個體目前主要以三大巨頭為主,

Google 的 GCP , Aws 的 EC2,以及 Microsoft 的 Azure ,

除了執行個體以外,

也提供了大眾許多實用的線上服務,

今天就來教大家:

建立 AWS EC2 執行個體教學

執行個體簡單的講其實就是一台虛擬機器,

通常用來架設網站或者開發用,

在AWS控制台中找到啟動虛擬機器,


選擇要安裝的系統軟體,

此處選擇 Ubuntu 20.04


再來就是選擇執行個體的硬體規格,

當然規格越高荷包縮水的越快,


再來就是一些細部設定,

例如網路設定,ip設定等等



可以選擇為此實體取 tag 名字,

並設定要使用的的安全規則。

例如: SSH 使用的 port 22,
             FTP 使用的 port 21,
             https使用的 port 443 等等,

隨著架設執行個體的目的不同,

套用不同的安全規則。


如果是第一次如果是第一次建立實體必須要先下載 key,

確認之前步驟都無誤後,

選擇 Launch 就能夠啟用。

PuTTY 預設並不支援 AWS 的Key  (.pem),

可下載 PuTTYgen 工具,

選擇 RSA (SSH-2 RSA) ,

使用 Load 載入 AWS 的Key,

接著選擇 Save private key (儲存私有金鑰),

將其轉換為 PuTTY  支援的格式 ( .ppk )



接著使用 PuTTY 連線的時候,

除了原有的 ip 位址或者 dns 連線設定以外,

必須要到 Auth 選項中,

導入剛才轉換的 Key 才能登入。


建立了主機後,

就能夠開始進行開發。




 


2020年9月9日 星期三

Open edX 安裝問題集

在虛擬機器上安裝 Open edX 其實問題並不多,

主要問題都在於防火牆設定,

如果預設為 All deny 的話,

就會有很多問題產生,

很可惜官方並沒有此類設定的說明文件,

若有的話,

相信許多問題都不需要解答就能解決。

Open edX 安裝問題集

Open edX 的說明文件有許多坑,

甚至新版本拿掉的功能,

在其最新版本的官方說明文件中還是寫在原章節內,

真心呼籲官方要好好撰寫才不會有一堆衍生的問題發生,

問題一:

此問題須手動安裝 mysql:

sudo apt install mysql-server


問題二:
Pymongo keeps refusing the connection at 27017,

該問題須執行:

sudo rm /var/lib/mongodb/mongod.lock
sudo service mongod start

即可


問題三:  
swap 問題,

此問題需要執行 

swapon -a

將 SWAP partition 設定為啟用即可。



其他應該還有許多奇奇怪怪的問題產生,

還是必須重申一次,

很多看起來都不像防火牆設定問題,

但事實上同樣版本同樣的安裝命令,

在沒有防火牆的選項下安裝,

是沒有這些問題產生的。





 


2020年9月1日 星期二

以 Facebook 為範例設定 Open edX 第三方登入


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

今天就以實際例子來示範:

以 Facebook 為範例設定 Open edX 第三方登入

首先要先到 FB 開發控制台 新建一個應用程式,

系統會詢問程式的用途,

此處選擇 "任何其他用途"


接著填寫應用程式的名稱以及連絡相關資訊,

再依照自己需求新增此應用程式使用到的 FB產品,

此處當然是選擇 "Facebook 登入"


並在設定頁面,

設定好重新導向 URI,

回到 Open edX 的 Django admin ,

找到 Third-party authentication,

新增 Provider Configuation (OAuth) 設定

勾選 Enable
設定icon class : fa-facebook
Name: Facebook
Slug :default
Site:在下拉式選單選擇目前網站
勾選 Visible
填上 Client id , Client secret (可在FB應用程式 - > 設定 -> 基本資料中找到) 


回到 Open edX 首頁即可看到新的登入選項,

跟帳號綁定後,

就可以使用 FB 帳號登入 Open edX。