Syllabus
   本課程主要講義 https://iottalk.vip/6     本班各同學網頁的網址
  * 🅶vm亞歷克羅斯:程式、跨領域、終身學習,是未來成功關鍵
第五週 本週只要把之前做的網站部署(Deploy)到 Heroku 或類似網站
本週練習目標: 讓我們自己的網站可以從全世界用 https:// 連過去;
這是為了之後要寫 LINE BOT 聊天機器人做準備 ! 因為 LINE / FB 臉書等的機器人都規定Web接口必須是 https 的網站!
說明:
就是把你第四週做過的網站 w4.py 複製為 w5.py, 然後增加一個網頁 /week05
內容你自己決定, 例如簡單點就直接 return 那個在第四週投影片內的陶淵明歸去來辭 的網頁(投影片內p.23), Python 程式類似如下:
@app.route("/week05")
def webWeek005( ):    # 這是函數名稱,  名稱不重要, 但不可以與其他函數同名
   return '''
      整個網頁塞這裡(不管有多少行), 最好在網頁內適當處加入你的學號與姓名
   '''   # 注意是整個網頁用前後都是三個連續單引號夾住 ! (或改用都是連續三個雙引號也可)
然後, 把你的網頁部署(Deploy)到 HeroKu 網站; 這不難, 只是步驟比較多一些, 看一些別人的教學文就會了。我先摘要如下:
  1.) 要到 Heroku.com 註冊, 使用有效的 E-mail 註冊
    要到你信箱點確認的連結, 點了會開新的窗, 這時要輸入你要的密碼(兩次);
    注意密碼要有字母、數字、以及至少一個字母和數字以外的符號 ! (靠餐ㄟ, 害我才過兩天就忘了密碼, 忘了用哪個符號:-)
  2.) 自己電腦要有 git (沒有用過則需要先安裝 git, 現在Heroku在 3.)那步驟安裝 Heroku CLI 時已經沒有 Git 選項可勾選了)
      參考 Git 在Windows安裝使用教學 https://progressbar.tw/posts/1
  3.) 登入 Heroku.com 之後, 建立一個 app (名稱就是會用來當作你網站的名稱的起頭);
    它會提醒你抓 Heroku CLI 命令解譯程式回來安裝以便有 heroku 命令可以用, 以及該做哪些準備工作;
    就是會到這 https://devcenter.heroku.com/articles/heroku-cli
      Heroko CLI是一個用來管理、創建、提交等命令的工具。
  4.) 使用 git 把 Python 專案弄成 git 的檔案配置方式;
        或是用 git clone 把官方的 Python 範例複製(clone)抓回自己電腦來修改;
        或是用 git clone 把教學文作者提供的範例抓回來改
  5.) 執行 heroku login 登入 Heroku 後台
  6.) 執行 heroku create 建立一個在 Heroku 的虛擬機器
  7.) 依據 Heroku 的規定把相關檔案準備好, 包括執行環境
  8.) 可以先在自己電腦跑起來測試以確定沒問題: heroku local
  9.) 確定正確了再用 git push 把專案推到 Heroku
  10.) 執行一些 heroku 命令
  11.) 測試你的 Heroku 專案 https://你建立的app名稱.herokuapp.com
  12.) 之後有修改只要做 git push heroku master 就可把改好的推上去 Heroku

Heroku免費帳號的限制
    Heroku 免費帳號當然有些限制(要錢的至少每月七元美金ㄟ):
  • 30分鐘沒有使用會進入睡眠狀態,之後要開啟需要等待一些時間才能運作。
  • 512MB RAM記憶體,這對開發一些小專案(就是程式碼不能很大)來說已經夠用了。
  • 1個Dyno。Dyno是Heroku分配給你的一個虛擬機器(虛擬電腦),可用來執行你的網站。

因為 Heroku 雖然號稱很簡單, 但是步驟很多, 而且還要使用到 git 做程式碼管理:
    Git 在Windows安裝使用教學 https://progressbar.tw/posts/1
所以, 如果你試著弄過一次沒弄成功
, 在練習過程中抓三至五個畫面, 並寫一些心得放入你的 Weebly,
然後改做:
把網站跑在自己電腦, 利用 ngrok 讓你的網站變成全世界看得見的 https 網站, 抓下兩個或三個畫面也放入你的Weebly網站即可。 這 ngrok 的使用超級簡單, 在第四週的加分題內說明得很清楚。
*注意:
當然, 練習過程記得要螢幕截圖, 放到你的 WeeBLY 這週對應的網頁; 還有, 最好是每張圖可以加減放一些文字說明或是心得 ! (不用寫太多:-)
網頁 網頁 網頁 . . .
關於網頁常用的Tag標籤, 請點最右邊圖片看以前講義 -->
可用滑鼠右鍵點選檢視網頁原始碼看這網頁怎麼寫的  
如何把自己網站變成全世界都可用的 https:// 網站呢?
這通常有三種做法:
(1)自己的機器(或雲端VPS) + 自己買的SSL憑證  : 這項我們暫時不考慮!
這方案很貴, 因為通常憑證每年年費大約一萬多甚至更貴, 不過半官方的 TWCA 憑證有學生/學校優惠價3780元/年
(2)把網站佈署(Deploy)在自己的普通電腦(PC/WindowsMac OS), 然後利用挖地道(Tunnel)服務把網頁開放出去! * 最有名的是 ngrok.com 的服務 (選免費即可, 但要註冊並先認證, 否則網站最多只能八小時) * 想知道有哪些類似的可替代服務, 問以下這alternativeto網站就對了: https://alternativeto.net/software/ngrok/ 進入該網頁第一個就是 ServeO.net(完全免費), 這 ngrok 和 ServeO 的用法我們在上週的習題說明 iottalk.vip/604/ 加分題有講過! * 課堂上我們會把上週投影片(在課程綱要網頁點 4. 右邊"HTML")內 陶淵明歸去來辭 的網頁(p.23)做示範: (a)先複製該頁內容存為文字檔, 檔案名稱自己亂取都可, 副檔名改為 .html 在"余家貧" 之前加入以下這列: (改為你學號與姓名) <h2><font color=red>我是 009008007 蔡文能</font></h2> (b)用瀏覽器開啟就會看到類似投影片中下一頁(p.24)的網頁 (c)利用 Python + Flask 把該頁變成"網站" 這只要複製我們以前的 w2.py 來改就可以了, 利用 return 連續三個單引號夾住的整個網頁即可 :-) 先複製(或另存新檔)成新名稱例如 w5.py copy w2.py w5.py 修改 w5.py, 加入一個入口點 "/week05" 以便呈現這新網頁 (d)用 python 把程式 w5.py 跑起來 沒錯誤的話它會說用瀏覽器看 http://0.0.0.0:5566 注意, 不要呆呆的真的用 0.0.0.0 喔! 要改用 127.0.0.1:5566 還有, 新網頁是 127.0.0.1:5566/week05 要讓其他同學也連進來則要知道電腦真正 IP, 在 CMD 命令窗用以下命令: ipconfig 注意它列出的 IP address, 可告訴同學用, 也可自己可以用來換掉 127.0.0.1 (每部電腦都叫 127.0.0.1 ) (e)下載 ngrok 且執行 ngrok http 5566 (這裡用 5566 是因為原先 w2.py 用 port 5566, 可改別的) (f)好了, 全世界都可以連入我們自己電腦的"網站"囉 ! (3)直接把網站佈署(Deploy)在別人的服務網站, 例如: HerokuPythonAnywhere
或任何提供類似服務的網站, 可搜尋 Python development and hosting
或可問 https://alternativeto.net/software/heroku/
***
Heroku is a cloud application Platform as a Service(PaaS) for Ruby, Rails, Node.js, Java, Python, Scala and Clojure web apps.
Comparing Heroku vs PythonAnywhere
Getting started with Heroku is very easy. It's a very straightforward procedure and a beginner can set up their first app in two minutes. Often it's just a matter of a couple of `git` commands and it's all set up and running.
The official Heroku [docmentation](https://devcenter.heroku.com/) also helps a lot.

關於如何部署到 Heroku ? 可以自己用 Gogle.com 搜尋 Heroku + 教學
以下已經幫大家找了五篇教學(其中第五篇是HeroKu官方教學文件):
(a)Flask 結合 Heroku 部署Https的伺服器: https://xiaosean.github.io/server/2018-04-11-Flask_Heroku/
  * 如果沒用過 git 的則需要先安裝 Git (在 Heroku 網站內有連結)
  ** 因為現在 Heroku CLI 安裝時已經沒順便裝 Git 選項可以勾選了

(b)用 Heroku 部署網站http://djangogirlstaipei.herokuapp.com/tutorials/deploy-to-heroku/?os=windows
  * 如果沒用過 git 的則需要先安裝 Git (在 Heroku 網站內有連結)
  ** 因為現在 Heroku CLI 安裝時已經沒順便裝 Git 選項可以勾選了

(c)Deploy Python + Flask 網站到 HeroKu: https://github.com/twtrubiks/Deploying-Flask-To-Heroku
  * 如果沒用過 git 的則需要先安裝 Git (在 Heroku 網站內有連結)
  ** 因為現在 Heroku CLI 安裝時已經沒順便裝 Git 選項可以勾選了

(d)發布網站到 Heroku: https://ithelp.ithome.com.tw/articles/10196129
  **注意, 它文章結束的地方還有"下一篇, 第19天..."
  * 如果沒用過 git 的則需要先安裝 Git (在 Heroku 網站內有連結)
  ** 因為現在 Heroku CLI 安裝時已經沒順便裝 Git 選項可以勾選了

(e)Heroku 官方的文件: https://devcenter.heroku.com/articles/git

* 以後如果發現部署在 HeroKu 的 Flask 網站效能不好有點慢,
可以點這看看如何利用 Memcache 外掛來提升你 Flask 網站的效能(這是 HeroKu 官方建議的)

你可能也會有興趣看以下這三篇:
(i)Heroku安裝使用教學 (簡潔篇)
      https://ericjhang.github.io/archives/689940fd.html

(ii)Git 安裝使用教學 (Windows) -- 提醒記得把 Git Bash 和 Git GUI 都打勾
      Git 在Windows安裝使用教學 https://progressbar.tw/posts/1
  或是, 到以下網站抓 Git for Windows (含 Git Bash 命令列 和 Git GUI) 來安裝:(Windows 10 的)
      https://gitforwindows.org/
      原始碼: https://github.com/git-for-windows/git/
      這裡有人寫了 連猴子都能懂的 Git 入門 / 進階 / Git命令快速參考

(iii)Heroku + Python Flask + LINE Bot
      https://ericjhang.github.io/archives/c7f31b57.html

Web page (Webpage) vs. Web site (Website)

A web page is a document with HyperLinks.

A web site is a collection of many web pages all linked together.

See https://writingexplained.org/webpage-vs-website-difference
======

Website vs. Web Application:

Most people will use the term website for just about everything, and they’re not wrong.

-- A website is informational
-- A web application is interactive

See https://www.seguetech.com/website-vs-web-application-whats-the-difference/

急著想知道如何弄出一個自己的 LINE BOT 聊天機器人的可以看以下教學文:

** 先看看這 LINE BOT + Python + Heroku : 基礎篇  (寫得很清楚)
    https://xiaosean.github.io/chatbot/2018-04-10-LineChatbot/

** 再看這篇 Python + Heroku 聊天機器人 - 應用篇。
    https://xiaosean.github.io/chatbot/2018-04-19-LineChatbot_usage/
 (這篇用了推播 push, 所以要選 Developer Trial 帳號)


** LINE BOT + Python + Heroku   (北科大程式設計研究社)
    https://yaoandy107.github.io/line-bot-tutorial/


** 開發LINE聊天機器人不可不知的十件事
    https://engineering.linecorp.com/zh-hant/blog/line-device-10/


** LINE BOT, 用到微軟的 QnAMaker Service (用人工智慧的問與答製造機)
   * 打造一個帶有語意識別的聊天機器人
 (1)建立 QnAMaker Service 
    -01 手把手教你搭建聊天機器人(LineBot+Python+QnAMaker+Heroku)-01建造QnaMaker
    https://goo.gl/NCPdtV
 (2)LINE BOT, Backend Server Deploy to Heroku 
    -02 建造 LINE Bot Backend Server 並部署至 Heroku
    https://goo.gl/4mrQrL

 (3)串接QnAMaker service+ LINE BOT起來  
    -03 串接 QnAMaker Service 
    https://goo.gl/hGzSkj
程式碼:
    https://github.com/hatsukiotowa/QnAMaker_Django_LineChatBot
======================== ======================== ========================
** LINE-Bot-Tutorial https://github.com/twtrubiks/line-bot-tutorial
================= ================= =================
【Python】 Line Bot 開發 -1 申請開發帳號!
【Python】 Line Bot 開發 -2 程式實戰!
【Python】 Line Bot 開發 -3 Flask 與 Line Bot 的異國戀情!
【Python】 Line Bot 開發 -4 機器人的 Sweet Home (架設伺服器)!

Line Bot 開發 -1
    https://missterhao.me/2017/08/15/line-bot-dev-1/

Line Bot 開發 -2 程式實戰!
    https://missterhao.me/2017/08/18/line-bot-dev-2/

Line Bot 開發 -3 Flask 與 Line Bot
    https://goo.gl/o9m15V

Line Bot 開發 -4 機器人
    https://goo.gl/tw4KtJ ================= ================= =================
LINE Bot + Arduino / ESP8266 + Node.js + Heroku https://swf.com.tw/?p=1118 ========================== 微軟AI服務 - QnAMaker 服務初探與串API http://sj82516-blog.logdown.com/posts/2559489 ================================ Google AI語音服務大更新 https://www.ithome.com.tw/news/128899 ====================================== =================================== 《Google雲AI、微軟Azure、亞馬遜的機器學習服務,究竟有啥區別?》 https://www.limitlessiq.com/news/post/view/id/3967/ ====== ====== ====== ====== ====== ====== ====== ====== 機器學習即服務(MLaaS):Google、Azure和AWS如何使AI民主化 原文網址: https://kknews.cc/tech/opboqjp.html

 
iottalk.club       iottalk.vip       iottalk.me
test.iottalk.tw       demo.iottalk.tw

🙎 👦 本班各同學網頁的網址(開新窗)

🌐 本課程主要講義 https://iottalk.vip/6 (蓋掉此頁)
    e3new 新 E3 ;   NCTU Portal 交大入口網站            

週六和週日也可以使用 iottalk.club

* 🅶vm亞歷克羅斯:程式、跨領域、終身學習,是未來成功關鍵