W1
1 super computer 超級電腦 2 mainframe 伺服器主機 3 server 伺服器 (虛擬 實體) 4 pc=person computer 個人電腦 5 microcontroller 微控制器 6 mobile phone 手機
Port 埠號 DHCP動態網路位置 W2
IPv4 version 4 IP 四個區段,用.隔開 IPv6 version 6 IP 八個區段,用:隔開 [2001:288:6004:17::53]:3128 140.130.17.53:3128 [2001:288:6004:17::42]:3128 140.130.17.53:254(系gateway通道) [2001:288:6004:17::17]:3128 140.130.1.*(校主幹)
tcp/ip==trandmision control protocol/internet protocol
inter-net==inter-national(國際)
(網際,inter+networt)
protocal 協定
trasmit 傳輸
data 資料
control 控制
version 版本(短時間)
edition 版本(長時間)
router 路由器
route 路徑
packet 封包
remote login 遠端登入
micro 微
microscope 顯微鏡
telescope 望遠鏡
macro 巨(比原子(atom)大)
atomic bomb 原子彈中華電信 dns. server. dns==domain name server 符號名稱伺服器
W6
portable obs
google hangout meet
streeming and recording
讓手機可以利用電腦熱點上網: 採用 https://www.tp-link.com/us/home-networking/usb-adapter/tl-wn725n/
將此一 USB Wifi adapter 連接電腦後, 若網路為 IPv4 協定時, 可以透過"設定 -> 網路和網際網路 -> 行動熱點", 選擇開啟並編輯"網路名稱與網路密碼"後, 讓至多 8 台手機透過熱點連線上網。
但是因為目前 Windows 10 並未提供 IPv6 網路協定下的網路熱點功能, 因此在純 IPv6 網路協定下無法使用"行動熱點"服務。
利用手機鏡頭當作 webcam:
Android: https://www.digitalcitizen.life/turn-android-smartphone-webcam-windows iPhone: https://www.makeuseof.com/tag/use-your-iphone-as-a-webcam-heres-how-ios/
需要 clone 個人倉儲時: git clone --recurse-submodules 倉儲_url.git
例如: git clone --recurse-submodules https://github.com/mdecourse/wcmj2020.git
現場直播的 audio 錄音設定 在電腦輔助設計室進行直播時, 由於現場有擴音設備, 因此採用 OBS 串流至 Youtube 的最佳收音並非從 Webcam 的麥克風, 而是從擴音器以 audio outpu 連接到電腦的麥克風插槽, 然後將 OBS 的 audio 設定為從電腦的麥克風收音. W7
grouping and meet. W8
meeting https://meet.google.com/zen-ewrh-zfy 第三組 2001:288:6004:17::53 2001:288:6004:17::42 2001:288:6004:17::17 2001:288:6004:17::4 "虛擬主機 不耐操 可以校外連接" 可能線上上課 組員: 50833104 組長 50833106 50833113 50833114 50833116 50833118 50833120 50833125 50833140 50833141 group 3 w9
電腦軟硬體簡介: 電腦硬體設備介紹: 主機板:主機板的功能主要在承戴其插卡,所有電腦裡的東西都會接到主機板 ,它們之間要相互的傳資料也是經過主機板,之後再傳到對方,簡單的來說,它就像一個轉運站一樣。 顯示卡(VGA):顯示卡在電腦中主要作用就是程式運行時根據CPU提共的指令和有關數據,轉換成顯示器能夠接受的文字和圖形顯示信號後通過螢幕顯示出來,簡單來說,就是把電腦計算出來的文字與圖形表現在顯示器上。 中央處理器(CPU):又稱為電腦的心臟,而CPU主要工作是算術、運輯運算,解讀電腦內的每個指令來控制電腦的運作。 記憶體(RAM):記憶體的主要功用是暫存資料,當它被使用時,系統可以從RAM上存取資料,而且需要電力來維持它的記憶,所以記憶體可以說是電腦系統中最佳倉儲管理員。 電腦軟體設備介紹: 則是看不到或觸摸不到的程式,由許多特殊安排的指令組織而成,分為兩種:
系統軟體:作業系統,語言編譯器及公用程式,尚有DOS、Windows95/98/2000/Me、Unix、...等等。 應用軟體:如Word文書處裡、ExceI電子式算表、PowerPoint簡報軟體、Photoshop影像處理、Flash像量動畫、遊戲軟體.....等。
網路架構與設定簡介:
win10電腦網路設定說明:
步驟1 同時按【WIN鍵+X鍵】→選擇【控制台】。
步驟2 點選【網路和網際網路】。
步驟3 選擇【網路和共用中心】。
步驟4 選擇【設定新的連線或網路】。
步驟5 連線完成後即可上網。
步驟6 選擇【關閉】完成設定動作。
步驟7 之後若要連線,請點選【寬頻連線】即可上網。
網際網路: 網際網路是指20世紀末期興起電腦網路與電腦網路之間所串連成的龐大網路系統。這些網路以一些標準的網路協定相連。它是由從地方到全球範圍內幾百萬個私人、學術界、企業和政府的網路所構成,透過電子,無線和光纖網路技術等等一系列廣泛的技術聯繫在一起。網際網路承載範圍廣泛的資訊資源和服務,例如相互關聯的超文字檔案,還有全球資訊網(WWW)的應用,電子郵件,通話,以及檔案分享服務。
網際網路的起源可以追溯到1960年代美國聯邦政府委託進行的一項研究,目的是建立容錯與電腦網路的通信。網際網路的前身ARPANET最初在1980年代作為區域學術和軍事網路連接的骨幹。1980年代,NSFNET成為新的骨幹而得到資助,以及其他商業化擴展得到了私人資助,導致了全世界網路技術的發展,以及許多網路的合併。到1990年代初,商業網路和企業之間的連接標誌著向現代網際網路的過渡。儘管網際網路在1980年代被學術界廣泛使用 , 但商業化的服務和技術融入了現代每個人的生活 。 W10
Public key 公開密要加密 Cryptography 編碼學 SSH 安全編碼機制 Putty:FREE SSH FOR WINDOW FREE SSH FOR WINDOW 設置:移動滑鼠 Private key W12-W13
W12
Leo Editor 與 Pelican blog 使用說明影片 W13
Pelican Blog 內容與 Google Blogger 同步 W13 利用 Leo Editor 按鈕處理同步說明影片 利用 Windows 10 設定 -> 選擇預設網頁瀏覽器, 使用 Google Chrome 作為預設瀏覽器. 隨身程式系統必須安裝 google-api-python-client 與 oauth2client pip install google-api-python-client oauth2client OAuth 2.0 client IDs 程式類別可以選擇 Desktop app 使用者完成 client_secrets.json 設定後, 必須將檔案存在倉儲目錄外部 將 client_secrets.json 轉為 credential_token.dat 的程式:
add_to_blogger 按鈕內容:https://developers.google.com/blogger/docs/3.0/using
under Mac command + b to execute
import pickle import os from googleapiclient.discovery import build from google_auth_oauthlib.flow import InstalledAppFlow
SCOPES = ['https://www.googleapis.com/auth/blogger', ]
we check if the file tBo store the credentials exists
if not os.path.exists('./../../yen_gm_blogger_token.dat'):
flow = InstalledAppFlow.from_client_secrets_file('./../../yen_gm_blogger_secrets.json', SCOPES) credentials = flow.run_local_server() with open('./../../yen_gm_blogger_token.dat', 'wb') as credentials_dat: pickle.dump(credentials, credentials_dat)
else: with open('./../../yen_gm_blogger_token.dat', 'rb') as credentials_dat: credentials = pickle.load(credentials_dat) service = build('blogger', 'v3', credentials=credentials) g.es(service)
from markdown import markdown from oauth2client import clientedit_to_blogger 按鈕內容:from googleapiclient import sample_tools
import os
配合使用 credential token
import pickle from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
os.environ['TZ'] = 'Asia/Taipei' with open('./../../blogger_credentials.dat', 'rb') as credentials_dat: credentials = pickle.load(credentials_dat) service = build('blogger', 'v3', credentials=credentials)
def get_cat_tag_content(data): # 請注意, 因為 data 來自 .md 的檔案 內容, 第1行為 --- # 用跳行符號分割 data_list = data.split("\n") #第 2 行為 title title= data_list[1] #第 4 行為 category category = data_list[3] #第 5 行為 tags tags = data_list[4] # 有多項資料的 content 型別為數列 # 再將第 9 行之後的資料數列串回成以跳行隔開的資料 content = "\n".join(data_list[8:]) # 先將截斷摘要與內文的 pelican md 檔按符號, 換成 Blogger 的 content = content.replace('', '') # 接著若內容有 ~~~python 與 ~~~ 則換成 Wordpress 格式 #content = content.replace('~~~python', '[code lang="python"]') #content = content.replace('~~~', '[/code]') return title, category, tags, content
從目前所在節點的 body pan 中取出類別, tags 以及文章內容
p.h 為 @clean filename.md
因為要使用 @clean 節點掛上為後的 blogger post_id, 因此改為讀 .md 檔案
md_filename = p.h.split(" ")[1] with open(md_filename, 'r', encoding="utf-8") as content_file: md_content = content_file.read()
title_str, category_str, tags_str, content = get_cat_tag_content(p.b)
title_str, category_str, tags_str, content = get_cat_tag_content(md_content) category = category_str.split(":")[1] tags = tags_str.split(":")[1].split(",") tags.append(category)
title 是一個單獨的字串
title = title_str.split(":")[1]
將 markdown 格式 content 轉為 html
content = markdown(content)
以下處理 content 的
標題
content = content.replace("
", "
")") content = content.replace("
", "g.es(content)
try: ''' users = service.users() # 取得使用者 profile 資料 user = users.get(userId='self').execute() print('網誌名稱: %s' % user['displayName']) ''' blogs = service.blogs() # 取得使用者所建立網誌名稱 blogs = blogs.listByUser(userId='self').execute() # post_id is now blogs["items"][0]["id"] blog_id = blogs["items"][0]["id"] #for blog in blogs['items']: #print(blog['name'], blog['url']) posts = service.posts() # 新增網誌 post 時, 需要 post_id body = { "kind": "blogger#post", "id": blog_id, "title": title, # 利用 markdown 函式, 將 .md 的內文轉為 html, 作為 Blogger 的文章內容 "content": content, "labels": tags } insert = posts.insert(blogId=blog_id, body=body) posts_doc = insert.execute() post_id = posts_doc["id"] #print(posts_doc) # 改用 credential token 後不會產生 blogger.dat #os.remove("blogger.dat") # 利用最後的 child 節點來儲存 post_id to_save_post_id = p.insertAsLastChild()
# 改為內文為空的節點, id 直接標在 head 標題 to_save_post_id.b = "" to_save_post_id.h = post_id # 因為新增節點, commander 必須 redraw c.redraw() g.es("post_id 為", post_id) g.es("已經將資料送往 Blogger!") except(client.AccessTokenRefreshError): g.es("error")
from markdown import markdown from oauth2client import clientW14from googleapiclient import sample_tools
import os
配合使用 credential token
import pickle from googleapiclient.discovery import build
from google_auth_oauthlib.flow import InstalledAppFlow
from google.auth.transport.requests import Request
os.environ['TZ'] = 'Asia/Taipei' with open('./../../blogger_credentials.dat', 'rb') as credentials_dat: credentials = pickle.load(credentials_dat) service = build('blogger', 'v3', credentials=credentials)
def get_cat_tag_content(data): # 請注意, 因為 data 來自 .md 的檔案 內容, 第1行為 --- # 用跳行符號分割 data_list = data.split("\n") #第 2 行為 title title= data_list[1] #第 4 行為 category category = data_list[3] #第 5 行為 tags tags = data_list[4] # 有多項資料的 content 型別為數列 # 再將第 9 行之後的資料數列串回成以跳行隔開的資料 content = "\n".join(data_list[8:]) # 先將截斷摘要與內文的 pelican md 檔按符號, 換成 Blogger 的 content = content.replace('', '') # 接著若內容有 ~~~python 與 ~~~ 則換成 Wordpress 格式 #content = content.replace('~~~python', '[code lang="python"]') #content = content.replace('~~~', '[/code]') return title, category, tags, content
從目前所在節點的 body pan 中取出類別, tags 以及文章內容
p.h 為 @clean filename.md
因為要使用 @clean 節點掛上為後的 blogger post_id, 因此改為讀 .md 檔案
md_filename = p.h.split(" ")[1] with open(md_filename, 'r', encoding="utf-8") as content_file: md_content = content_file.read()
title_str, category_str, tags_str, content = get_cat_tag_content(p.b)
title_str, category_str, tags_str, content = get_cat_tag_content(md_content) category = category_str.split(":")[1] tags = tags_str.split(":")[1].split(",") tags.append(category)
title 是一個單獨的字串
title = title_str.split(":")[1]
將 markdown 格式 content 轉為 html
content = markdown(content)
以下處理 content 的
標題
content = content.replace("
", "
")") content = content.replace("
", "g.es(content)
try: blogs = service.blogs() # 取得使用者所建立網誌名稱 blogs = blogs.listByUser(userId='self').execute() blog_id = blogs["items"][0]["id"] # 設法取得原 post 的 id postid_outline = p.getLastChild() # 直接從標題取得 post 的 id 號碼 post_id = postid_outline.h posts = service.posts() # 更新網誌文章時的 body body = { "kind": "blogger#post", "title": title, "content": content } # need to save postId to outline head update = posts.update(blogId=blog_id, postId=post_id, body=body, publish=True) update_doc = update.execute() # 使用 credential token 後, 無需刪除 blogger.dat #os.remove("blogger.dat") g.es("post_id 為", post_id) g.es("已經將更新資料送往 Blogger!") except(client.AccessTokenRefreshError): g.es("error")
直接在操作系統建立網際內容管理合用系統 Windows 10 64 位元操作系統 安裝 Python 3.8.3 與 pip 至 https://www.python.org/downloads/windows/ 下載 Python 3.8.3 Windows x86-64 executable installer 可以直接選擇安裝 pip 與所有選項內容 安裝 Git 利用 64-bit Git for Windows Setup 安裝 Git 工具. 安裝 CMSiMDE 所需模組 利用 cmd 開啟命令列視窗, 以 pip 安裝 flask flask_cors lxml bs4 markdown pelican leo 等模組 pip install flask flask_cors lxml bs4 markdown pelican leo Ubuntu 20.04 操作系統 (請下載 W12 Virtualbox 虛擬主機檔案) Ubuntu 20.04 同時存在 Python 2.7 與 Python 3.8.2, CMSiMDE 只相容於 Python 3.8.2, 因此啟動指令必須使用: python3 wsgi.py 與 pip3 install flask flask_cors lxml bs4 markdown pelican leo Mac OS X 操作系統 與 Ubuntu 20.04 類似.