ref: https://faun.pub/the-best-infrastructure-as-code-tools-for-2021-b37c323e89f0
這篇文章是一個 IaC (Infrastructure as Code) 的推廣文,文章分成幾個部分,從 IaC 的基本概念與應用談起,接者分析了幾個常見的 IaC 工具,最後探討了實際的使用案例
文章偏長,對於 IaC 概念很熟悉的讀者應該可以很快速地看完,以下針對部分進行一些摘要
The need for Infrastructure as Code
作者先描述過去幫機房部署新伺服器時的各種流程,機器少量時能夠透過人力慢慢處理,但是這類型的操作繁瑣,重複且惱人
為了讓這些流程處理得更佳順遂與一致,會有各式各樣的 scripts 等相關工具被開發出來,而這些流程慢慢的會往自動化的方式去發展。
IaC 文化的興起會使得有愈來愈多獲得共識的工具被開發出來,這使得 IaC 的使用門檻會有機會降低,愈來愈多的使用者能夠更簡易的透過 IaC 的方式來管理與維護自身的架構
Benefits and reasons to implement IaC
IaC 帶來的好處是非常顯著的,譬如
1. 將 Config 檔案當作整個環境的 sing source of truth
2. 每次的部署都是基於上述的 Config 來部署,能夠確保每次部署都獲得一樣的結果,避免人為的反覆長期操作帶來的錯誤
3. 透過程式化的方式去建置環境能夠更快速的去應變各種環境需求,對於 testing, developing, production 等各種變化都可以透過 config 的差異來快速搭建
4. Config 也可以透過 Git 的方式去管理來獲得更好的可稽核性與管理性。
Principles and best practices of Infrastructure as code
作者這邊列出了幾個實作上的推薦方式
1. 透過版本控制的方式來管理 IaC 的設定檔案,能夠讓維運人員使用開發者常見的開發合作流程來管理 IaC
2. 將 IaC 的工具整合到 pipeline 的 CI/CD 流程,讓 CI 流程去檢查 IaC 的設定是否符合預期以及 CD 流程來幫忙自動部署修改架構
Infrastructure as code tools
這個區塊作者列出了幾個常見的工具,包含 Terraform, CloudFormation, Puppet, Pulumi 等,接者又透過一張大表格來比較 Terraform/Pulumi/CloudFormation 三者的差異
Pulumi 這工具這一兩年開始聲勢比較多,跟 Terraform 一個最大的差異我想就是撰寫的方式,可以透過 Js, Go, Python...等程式語言來描述架構而並非使用 Terraform 自定義的 DSL 來管理。
最後面作者也列舉了六七個適合 IaC 的使用場景,有興趣的歡迎閱讀全文
同時也有24部Youtube影片,追蹤數超過4萬的網紅吳老師教學部落格,也在其Youtube影片中提到,[進階]網頁資料擷取、分析與資料視覺化能力7(正規表示法&證照201搜尋字詞用re的findall方法算詞頻&抓取email與圖片網址與電話號碼&202美元收盤匯率&203台灣彩券程式差異與204題&301學生成績&如何用Pandas讀與寫CSV與EXCEL&301&303果菜批發市場拍賣行情) ...
「python開發環境差異」的推薦目錄:
- 關於python開發環境差異 在 矽谷牛的耕田筆記 Facebook 的最佳貼文
- 關於python開發環境差異 在 台灣物聯網實驗室 IOT Labs Facebook 的最佳貼文
- 關於python開發環境差異 在 李開復 Kai-Fu Lee Facebook 的最讚貼文
- 關於python開發環境差異 在 吳老師教學部落格 Youtube 的精選貼文
- 關於python開發環境差異 在 吳老師教學部落格 Youtube 的最佳解答
- 關於python開發環境差異 在 吳老師教學部落格 Youtube 的最佳解答
- 關於python開發環境差異 在 [問題] python開發環境的差異? - PTT 熱門文章Hito 的評價
- 關於python開發環境差異 在 windows10的python環境建置(二) conda使用教學 - YouTube 的評價
- 關於python開發環境差異 在 [問題] python開發環境的差異? | python ide推薦ptt 的評價
- 關於python開發環境差異 在 Python開發環境Anaconda/Spyder之安裝| By 大葉大學電算中心 的評價
python開發環境差異 在 台灣物聯網實驗室 IOT Labs Facebook 的最佳貼文
佈署 IoT Edge 和霧運算技術以開發智慧建築服務
2021年2月19日 星期五
《3S MARKET》這篇報導把物聯網的架構與實作,描寫的非常詳細,雖然在建築的細節上描述不多,但報導中也提及這是個實際驗證,可適用在很多的場域。不知道,有多少人真正看得懂?當然,連這篇都看不懂的人,就別說他真正了解物聯網、Edge 與 Cloud。
事實上這篇報導的描述不難了解,真正物聯網與邊緣運算的挑戰,是在實作。實作真正面臨的,是這些數據處理、融合、分析上的完整度,還有 —— 找到實作的場景!
摘要
基於 SoC 架構的嵌入式系統的進步,使許多商業設備的開發變得足夠強大,足以運行操作系統和複雜的算法。這些設備整合了一組具有連通性、運算能力和成本降低的不同感測器。在這種情況下,物聯網(IoT)的潛力不斷增加,並帶來了其他發展可能性:「事物」現在可以增加數據源附近的運算量;因此,可以在本地系統上,佈署不同的物聯網服務。
這種範例稱為「邊緣運算」,它整合了物聯網技術和雲端運算系統。邊緣運算可以減少感測器與中央數據中心之間,所需的通信頻寬。此方法需要管理感測器、執行器、嵌入式設備,和可能不連續連接到網路的其他資源(例如智慧手機)。這種趨勢對於智慧建築設計非常有吸引力,在智慧建築設計中,必須整合不同的子系統(能源、氣候控制、安全性、舒適性、使用者服務、維護和營運成本)以開發智慧設施。在這項工作中,分析和提出了一種基於邊緣運算範例的智慧服務設計方法。
這種新穎的方法,克服了現有設計中與服務的互操作性,和可伸縮性有關的一些缺點。描述了基於嵌入式設備的實驗架構。能源管理、安全系統、氣候控制和資訊服務,是實施新智慧設施的子系統。
1. 簡介
建築自動化系統使用開放式通信標準和介面,可以整合多種不同的建築控制規則,例如供暖、通風、空調、照明和百葉窗、安全功能和設備。但是,現有建築物通常不具有這些系統。
通常,每種安裝類型都提供特定的服務:供暖通風和空調(HVAC)控制氣候服務,攝影機和感測器提供安全服務等。僅當設計能源管理系統時,不同的子系統相關,但僅透過以下方式,連接建築物的能源管理系統。能源管理服務,集中在專用軟體中。
對於使用者和維護技術人員來說,提供不同服務的不同製造商,發現很難整合新的服務和功能。自動化建築將用於控制和數據採集的軟體,與工業協議和介面整合在一起。此外,將新服務整合到這種解決方案中並不容易,這取決於已安裝軟體的開發。
這些工業發展還為能源管理,提供了雲端連接解決方案和智慧服務。這些服務,也在集中式電腦系統中開發。數據被傳輸到這些系統或雲端進行分析。本文提出使用佈署在物聯網(IoT)技術中的邊緣和霧運算範例,主要有兩個目的:
A. 在自動化和非自動化建築物中,促進新的智慧和可互操作服務的整合(整合)。
B. 允許在建築物的所有子系統之間,分配智慧服務(互操作性)。
透過該建議,可以促進建築物子系統之間的關係。它還促進創建新的智慧服務(例如,新的分佈式智慧控制算法;使用電源管理捕獲的數據,來檢測人類活動;捕獲設備連接的模式辨識,運算可再生電力預測,在安全服務中使用電力數據等)。在這項工作中,我們設計了一個中間軟體的體系結構,該體系結構具有兩個主要層,這些層基於嵌入式設備、IoT 通信協議和硬體支援,來開發人工智慧算法(圖1)。
為了實現這一目標,我們在建築物的設施中添加了兩個概念等級:邊緣節點和霧節點。每個等級都有不同種類的設備和功能。我們佈署並實現了基於層的中間軟體的體系結構,以對模式進行實驗。
本文的組織結構如下:第 2 節回顧了智慧建築技術,建築物中的 IoT 佈署以及邊緣運算範例。第 3 節提出了一種在建築物(自動與否)中佈署邊緣和霧運算範例的方法。第 4 節介紹了進行的實驗。最後,第 5 節介紹了結論和未來的工作。
2. 相關工作
本節介紹與這項工作相關的主要研究領域。首先,我們在分析雲端運算層之後,回顧了基於邊緣運算範例的資源和服務供應。最後,我們研究了實現智慧建築的技術,並在最後的小節中,總結了先前研究的貢獻。
2.1. 邊緣運算資源和服務供應
最近,網路在兩端被標記為「邊緣」和「核心」,以查明處理發生的位置。邊緣端靠近數據源和使用者,核心端由雲端伺服器組成。透過這種方式,邊緣運算範例將運算推送到 IoT 網路的邊緣,以減少數據處理延遲,和發送到雲端的數據數量。基於雲端的後端,可以處理對時間不太敏感,或源設備本身不需要結果的處理請求(例如,物聯網網路狀態下的大數據分析)。
在邊緣運算資源供應方面,正在進行的 Horizon 2020 RECAP 項目,提出了一種整合的雲端 - 邊緣 - 霧端架構,目的在解決應用放置、基礎架構管理和容量供應。雲端/邊緣基礎架構監控功能豐富了應用,基礎架構和工作負載模型,這些模型又被回饋到優化系統中,該系統可以協調應用並持續配置基礎架構。
徐等人進行的研究。 提出了一種用於邊緣運算的實用感知資源分配方法,稱為 Zenith。借助 Zenith,服務提供商可以與邊緣基礎設施提供商,建立資源共享合同,從而允許延遲感知資源調配算法,以滿足其延遲需求的方式,來調度邊緣任務。
邊緣節點資源管理(簡稱 ENORM),是管理邊緣/霧節點資源的框架,可透過監控應用需求,來自動擴展邊緣節點。可以透過靜態優先等級分配,來確定特定應用的優先等級。供應和自動縮放機制,是基於線性搜索的相對簡單的實現。
當源本身是可行動的時,邊緣雲範例也是可行的。 Chen 等人研究了行動設備向邊緣節點(特別是在無線電接入網路邊緣)的智慧運算分流。在這項工作中,作者提供了任務卸載算法,將分佈式運算卸載決策表述,為多使用者運算卸載功能。在同一項工作中,Wang 等人研究了聯合協調卸載任務,到多個邊緣節點的問題,並提出在邊緣等級引入及准入控制,以及兩階段調度方法,與傳統的最近邊緣選擇方法相比,改進了卸載性能。
2.2. 雲端運算服務配置
就社會和行業採用資訊技術而言,雲端運算範例是最具創新性的策略之一。提供的優勢提高了效率,並降低了成本,同時提供了可透過 Internet,普遍存取訪問的按需 IT 資源和服務。
當前,雲端運算服務種類繁多,甚至如何提供,這是一個受到廣泛研究的主題,正在提出許多的方案。甚至有評論總結了雲端運算範例的相關研究。
本小節介紹了有關以下問題的先前工作,這些問題與本手稿的主題有關:(i)安全性; (ii)服務品質(QoS); (iii)提供邊緣服務。
(i)安全是雲端運算中一個具有挑戰性的問題。雲端服務位於應用環境之外,並且超出了防火牆的保護範圍,因此,需要附加的安全層。另外,邊緣和霧運算應用的行動性和異構性,使得難以定義單個過程。因此,需要一種分佈式安全策略。
此外,必須有一個標準化的環境,才能正確解決此問題,並指定霧運算和邊緣設備,如何相互協作。網路邊緣上的多個霧節點之間的敏感數據通信,需要資源受限的事物的輕量級解決方案。另一個與安全性相關的問題是數據位置。在雲端中運行數據分析是很常見的。因此,關於數據安全或隱私的公有雲與私有雲的爭論就出現了。
(ii)分配給雲端應用的資源,通常是根據合同規定的服務水準協議(SLA)所設置的。但是,實際上,由於偶爾執行大量事務,而導致分配的基礎結構飽和,可能會出現瓶頸。為了解決此問題,可以在資源可用時,動態擴展雲端基礎架構。當前,最具創新性的趨勢,目的在建構自動 SLA 合同合規系統。在 Faniyi 和 Bahsoon,以及 Singh 和 Chana 進行的研究中,可以找到與品質服務管理相關建議的詳盡綜述。考慮到這一點,提出了幾種策略來預測,應用的資源需求和 QoS 的要求。最近的工作試圖將安全性和 QoS 問題結合起來,以提供全面的性能指標。
(iii)最後,濫用雲端服務,是該領域的另一個問題。物聯網環境是霧和邊緣設備不斷加入或離開,動態的執行前後關聯。因此必須在網路邊緣提供彈性的服務。為此,在網路的可用設備之間,共享應用工作負載,可以為高階運算應用提供靈活性。提出了可靠的服務供應方法,來為系統提供更高的彈性,並提供靈活和優化的雲端服務。
在本主題中,將雲端框架和中間軟體技術,設置為與雲端層,以及具有不同介面操作系統,和體系結構的設備之間,進行通信的平台。
2.3. 物聯網在建築服務工程中
物聯網開發為在建築物上,開發數位服務提供了新資源。建築物中常見的物聯網應用,包括節能的過程環節、維護改進、雜務自動化和增強安全性。由於全球變暖,建築物的節能是一個重要的課題。
物聯網技術引入智慧建築,不僅可以減少本地溫室氣體排放,還可以將減少溫室效應擴大到更大的領域。目前,物聯網還被用於建築領域,以協助設施管理。物聯網使營運系統能夠提供更準確和更有用的資訊,從而改善營運,並為房客租戶提供最佳體驗。有基於物聯網的建議,這些建議顯示建築系統,如何與雲端進行通信,並分析所獲取的數據,以開發新的業務見解,從而能夠推動真正的增值和更高的績效。
實驗研究顯示,物聯網平台不僅可以改善,工業能源管理系統中實體的互連性,而且可以降低工業設施的能源成本。 FacilitiesNet 表示,建築物聯網(BIoT)正在推動我們獲取資訊,彼此互動和做出決策的方式發生重大轉變。BIoT 不僅與連接性或設備數量有關,而且還與交付實際和相關結果有關。當前,有很多基於物聯網的智慧家庭應用的例子。
然而,智慧設備或「物」,僅僅是連接到網路的設備或嵌入式系統。增值來自設計協調系統,和提供智慧服務,以提供實際收益的能力。這些特徵基本上,取決於對不同類型連接事物的異質性,及其互操作性的管理,並取決於數據處理提供的情報潛力。
Tolga 和 Esra 進行的研究得出的結論是,就智慧家庭系統中的軟體和硬體而言,物聯網技術尚未變得穩定。原因之一,有可能是物聯網技術仍處於發展階段。McEIhannon 所撰寫有關物聯網應用的邊緣雲和邊緣運算的未來,其評論得出了類似的結論。這篇評論提到概念和發展,目前還處於早期階段,從學術和行業的角度來看,許多挑戰都需要解決。
物聯網帶來了新的機會,但許多企業仍在尋求了解和分析,其將如何影響,並與現有的 IT 結構和管理策略整合。為此,必須創建專門的使用模式和技術,來彌合這一差距。
2.4. 發現
以下結論闡明了這項研究建議的新穎之處:
雲端運算作為「實用」的一般概念,非常適合智慧家庭應用的常規需求。但是,在某些情況下,將所有運算都移到雲端中,是不切實際的。
邊緣計算作為一種計算範例而出現,可以在物聯網設備生成的數據附近執行計算。這種範例可能有助於滿足最新應用的安全性和 QoS 的要求。
當前,控制子系統的高級建築設施,通常使用 Internet、IoT 協議和 Web 服務。專有系統是使用標準的 Internet 通信協議設計的,用於管制和監控。先前的工作顯示,基於無線感測器網路、Web 介面和工業控制模式,用於氣候控制、電源管理或安全性的控制系統,使用不同的監視和控制技術。監控應用分析,得自監控和數據採集系統中的這些子系統。對於不同的子系統,有不同的解決方案。考慮到上述情況,本工作中提出的模式,引入了以下新穎元素:
A. 介紹了一種分層架構(整合了邊緣和霧端等級),以及提供子系統之間互操作性,以及在建築物控制中開發智慧服務的方法,該方法使用了邊緣和霧端範例,這些範例將 IoT 協議整合在一起,並在本地 Intranet 中操作 AI 技術,讓雲端服務的通信層,完善了該層的架構。
B. 介紹了一種基於使用者為中心的方法,用於在互操作性需求下設計、驗證和改進新服務。
C. 該提案允許使用可以在已建的建築物中,實施的非專有硬體和軟體系統。
3. 計算模式設計
建築物中的設施子系統分為有照明、氣候、能源、安全、警報、電梯等。在自動化建築中,這些子系統由專門的控制技術控制和監控。在非自動化建築物中,不存在這些服務,並且子系統透過電子和電氣方式進行控制。在這兩種情況下,所有子系統都為建築營運,提供必要的服務。
從邏輯上講,每個子系統都在其場景中起作用,並且不能與其他子系統互操作。嵌入式電子控制器和連接的不同感測器,可以使每個子系統自動化。這些服務都是基於直接反應性控制規則。除了嵌入式控制系統和感測器之外,通信技術(基於 Internet 協議)和新的行動設備還為開發管制、監控和數據訪問服務,提供了新的可能性。
在智慧型動設備上開發,並連接到 Web 伺服器的人機介面和專用應用,是近年來已實現的服務的範例。每個子系統中的專家(氣候、安全性、電源等),都具有可以轉換為專家規則的知識。這些規則被轉換為用於管理、維護、控制、優化和其他活動的控制算法。這些規則是可以,在可程式設備上編程和實現的。但是,它們是靜態的,不會在出現新情況時發生變化,並且不能互操作,也無法適應每個安裝的特性。
例如,氣候或安全專家決定,如何使用標準啟動條件,來配置每個子系統。每個控制規則僅在一個子系統(此範例中為氣候或安全性)中工作,因此,這些子系統之間沒有互操作性。考慮到這種情況,提出的模式有助於並允許,基於不同子系統的互操作性,來整合新的數位服務,並將人工智慧(AI)技術的新服務,引入當前設施。
例如,諸如電梯控制的設施,可以用於安全服務或建築能源管理服務。氣候控制設施,可以與安全子系統整合在一起。整合到模式中的天氣預報軟體系統,可以由能源管理服務,或建築物空調服務使用。
目的是讓每個子系統中的專家,參與設計整合服務,並將所有子系統轉換為可互操作的系統。該模式會開發自動規則,並允許在考慮安裝行為本身的情況下進行決策。該模式基於一個過程,該過程包括四個開發階段(圖2)和分為不同級別的硬體 - 軟體體系結構(圖3)。該體系結構的主要等級,是邊緣等級和霧等級。這兩個層次介紹了在建築物中,應用物聯網技術的新穎性。下面介紹了模式的各個階段(分析、設計、實施和啟動)。
.分析:在此階段確定了不同的專家使用者(氣候、安全、電力、水、能源、管理人員,以及資訊和通信技術(ICT)技術人員)。諮詢專家使用者,以指定需要控制的主要過程。資訊通信技術專家作為整合環節,參與了這一過程。第一種方法產生了設計控制規則,和潛在服務所需的事物(對象)。在此階段,使用以使用者為中心的方法,並捕獲子系統的需求。
.設計:我們提出了一個三層架構(邊緣、霧端和雲端),如圖 3 所示。
.實施和數據分析:在此階段中已安裝和整合了子系統。服務基於每個子系統中的規則,分析事物(對象)生成的數據,以設計基於機器學習的服務。
.啟動:最初,在每個子系統的監督下制訂專家規則。然後,使用回饋過程安裝規則。最後,透過人工智慧技術,可以推斷出自動的和經過調整的規則。
3.1. 分析與設計
專家使用者對此過程,進行不同的審查。以使用者為中心的技術,用於設計整合流程。目的是獲得所需的所有事物(對象),它們之間的關係,以及潛在的服務。一旦指定了事物(對象)和服務,就必須關聯通信協議和控制技術。選擇了物聯網協議和嵌入式控制器;提出了人機介面;指定了邊緣層和霧層及其功能;分析專家規則和智慧服務。最後,提出了維護和操作方法。所有這些任務在專家技術人員,和資訊技術專家之間共享。
結果是事物的定義,它們之間的關係,以及與邊緣和霧層的交互作用。該過程中代表了建築物的所有子系統,數據感測器、執行器、控制器、規則和過程經過設計,可以整合所有子系統。數據集、對象和設備,由物聯網概念表示。事物由具有狀態和配置數據的實體,和前後關聯組成。事物數據位於霧和邊緣節點中,儲存的不同配置中的關聯性。
事物以數據向量表示:[ID、類型、節點、前後關聯情境]。
– ID是辨識碼。
– 類型可以是感測器、執行器、變量、過程、設備、介面、數據儲存,或可以在 IoT 生態系統中寫入、處理、通信、儲存或讀取數據的任何對象。
– 節點指定建築物子系統、功能描述、層類型(邊緣、霧端、通信或雲端)、IoT 協議和時程存取訪問。
– 前後關聯表示在 IoT 生態系統中,用於發布或讀取數據的時間、日期、位置,與其他事物的關係、狀態和訪問頻率。
表 1 是由事物([ID、類型、節點])。所有事物都可以訪問配置文件(CF),以了解如何使用可用數據,以及如何使用適當的訪問權限配置新數據。前後關聯數據位於內建記憶體,或是靜態儲存。使用定義的事物,設計不同的控制規則。這些控制規則是分佈在連接到網路的不同嵌入式系統中,控制過程的一部分。事物表示佈署在安裝的不同子系統中,所有的可用資源。在此等級上,設計師對所有事物進行分析、指定和關聯。基本控制算法是使用此資訊實現的。配置關聯性允許層和設備之間,所有事物的互操作性。
在此階段的另一級設計,必須提出物聯網管理中,使用的節點要求和規範。設計的流程和服務,將在邊緣或模糊節點中實施。必須指定每個節點,以確定其內部功能、通信及其服務。在獲取數據的地方,開發了智慧和處理能力。邊緣和霧層的節點,位於數據感測器、執行器和控制器附近。本文提出的方法,使用具有兩個功能的兩層(邊緣和霧端)。每一層都可以佈署互連節點的網路,以促進互操作性。
邊緣和霧層的功能是:
邊緣層功能:在連接感測器/執行器的嵌入式設備上,開發的控制軟體。某些 AI 算法可以安裝在邊緣節點上。中央處理器(CPU)和計算資源有限。安裝了通信介面,以允許在本地網路中進行整合。
霧層功能:局域網級別的通信、AI 範例、儲存、配置關聯性和監控活動。霧節點透過處理、通信和儲存,來處理 IoT 的Gateway、伺服器設備,或其他設備中的數據。在此等級實施本地、全球的整合服務。利用這些節點的硬體、軟體和通信功能,開發了基於機器學習範例的算法。霧層設備還可以在很少單位的設施或服務中,執行邊緣節點功能。
透過這兩個等級,可以優化建築設施,以獲得不同子系統之間的整合和互操作性。
表 1 顯示了每件事與關聯性配置,和節點規範的關係。節點標識其所屬的子系統(控制、能源、氣候等),層(霧端、邊緣、通信和雲端)及其執行的功能。
3.2. 架構設計
在分析和設計階段,獲得對象(事物)及其關係。規範和要求用於實現每個層。實施取決於提供所需功能的設計,和現有技術(硬體、通信和軟體)。在此階段,開發了一種適合現有設施的體系結構。物聯網協議提供互操作性,而 AI 範例則提供了適應性和優化性。邊緣運算節點用於控制設備,霧運算節點安裝在本地網路節點上。這些等級為配置、安裝和運行新流程,提供了強大的資源。
物聯網協議,傳達所有子系統數據。每個子系統由對象/事物(虛擬等級)組成,安裝為可連接的感測器/執行器/控制器設備(硬體等級)。
物聯網通信中,針對建築場景建立的要求是:標準協議、低功耗、易於存取訪問和維護、支援整合新模組,非專有硬體或軟體,以及低成本設備。
MQTT 協議,是目的在用於提供整合和互操作性資源,異構通信場景的主要物聯網協議之一。該協議被提議作為感測器、執行器、控制器、通信設備,和子系統之間的通信範例。
MQTT 協議的一些主要功能,在不同的著作中有所顯示,這使其特別適合於這項研究。他們之中有一些是:
.它是針對資源受限的場景開發的發布 - 訂閱消息協議。
.它具有低頻寬要求。
.這是一個非常節能的協議。
.編程資源非常簡單,使其特別適合於嵌入式設備。
.具有三個 QoS 等級,它提供了可靠和安全的通信。
MQTT 開發了無所不在的網路,該網路支持 n-m 節點通信模式。任何節點都可以查詢其他節點,並對其進行查詢。在這些情況下,任何節點都可以充當基地台的角色,能夠將其資訊傳輸到遠端處理位置。無處不在的感測器網路(USN)中的節點,可以處理本地數據。如果使用 Gateway,則它們具有全局可訪問性;他們可以提供擴展服務。
節點(邊緣或霧),可以具有本地和全局存取訪問權限。這些設施具有不同的可能性和益處。本地數據處理,對於基本過程控制是必需的,而全局處理則可用於模式檢測和資訊生成。從這個意義上講,擬議的平台使用了組合功能:連接到 IoT 雲端服務,本地網路區域上不同的 USN。在這種情況下,運算層(邊緣或模糊等級)將用作控制流程和雲端服務之間的介面。該層可以在與雲端進行通信之前,進行處理數據。
實現邊緣和霧端運算節點需要執行三個操作:
.連接和通信服務:所有設備必須在同一網路中,並且可以互操作。所有感測器和執行器都可用於開發服務。此活動的一個示例,是在 Internet 上遠端讀取建築物的電源參數、環境條件和開放的天氣預報數據。此活動中應實現其他功能,例如連接的安全性、可靠性和互操作性。
.嵌入式設備(邊緣運算層)中的控制算法和數據處理:在此活動中,這些設備中實現的基本控制規則和數據分析服務,可以開發新功能。此階段可以應用於數據過濾、運算氣候數據或分析功耗、直接反應控製,或使用模式辨識技術檢測事件。
.Gateway 節點(霧運算層)上的高階服務:此等級使用和管理 AI 範例,和 IoT 通信協議。霧運算節點對數據執行智慧分析,對其進行儲存,過濾並將其傳遞到不同等級,以糾正較低級別的新控制措施,或者生成雲端中服務感興趣的資訊。此階段的應用示例,包括分析新模式、預測用水量,或功耗、智慧檢測和其他預測服務。
3.3. 測試與回饋
在測試階段使用標準方法,邊緣和霧層提供不同的功能。提出了針對不同子系統的機器學習模式,並且可以將其安裝在邊緣或霧節點上。必須執行以下操作,來測試機器學習應用:
A. 定義和捕獲數據集:必須辨識、捕獲和儲存主要變量。在不同的建築子系統中,過程數據集是由連接到邊緣層的感測器捕獲的數據。使用通信協議監控和儲存數據集。一個案例是電表,該電表在配電盤中連接到嵌入式設備(邊緣節點),該嵌入式設備傳送電力數據,以在霧節點設備中儲存和處理。
B. 訓練數據集和形式辨識模式。先前數據集的一個子集,用於訓練不同的模式。評估針對從未用於訓練的數據測試模式,此過程的結果已由專家使用者驗證。目的是獲得一組代表性的結果,以了解模式在現實世界中的表現。
C. 實際場景中的驗證:必須在邊緣和霧節點上,實施新的服務和控制算法。這些模式具有用於分析數據,實施特定模式,並使用結果開發最佳參數的算法。在此階段,可以修改或進行改善模式。
D. 用統計術語和模式演變,得出測試結果:基於 AI 算法的模式而將產生近似值,而不是精確的結果。分析應用結果以確定置信度,並允許模式演化。該活動支持開發新的 AI 服務,或對已實現的算法進行修改。有監督的自動更改,是維護和改進系統的過程。此階段的過程,包括所有模式層。
建議對使用邊緣和霧,任何的安裝進行這些活動。如前所述,該模式既可以安裝在既有舊的建築物中,也可以安裝在新建築物中。對於新建築設計,基於建議模式的安裝更易於整合。此外,可以提供的服務的潛力,也使其對於既有建築物具有吸引力。
4.在建築子系統中,實施智慧服務
該模式在預先存在的住宅建築物上,進行了測試。設計和實施電源管理、管制和監控服務。物聯網協議(MQTT 和 HTTP)和 ML 範例,用於建議的層體系結構。基於 KNN 的機器學習方法,和樹決策算法用於管理功耗(家用電器),和可再生能源發電(風能和太陽能)。使用房屋中的霧節點,在雲端平台上實現監控和統計數據。該節點連接到控制可再生,和家用電器子系統的不同邊緣節點。
在圖 6 中,邊緣節點,整合在先前安裝的可再生子系統中。透過邊緣層上的這種新設備、電源管理、安全控制和操作流程得以整合,並且可以與其他子系統互操作。可以設計新的智慧服務。邊緣節點將數據傳輸到霧節點 Gateway,該 Gateway 管理功耗和發電,並控製家用電器。該節點中的輸入,是可再生能源發電的數據。輸出控件是 ON-OFF 開關,用於優化發電、安全性和操作。
4.1. 分析與設計
分析了住宅建築,以設計電源管理,安全和控制服務。 在第一種方法中,所需的主要事物(對象),它們之間的關係和不同的服務,如表 2 所示。
4.2. 執行
分析房屋中的建築子系統,以整合這個執行模式層:邊緣控制、霧服務,與雲端的通信和雲端服務。 選擇了本實驗工作中使用的感測器、執行器和控制過程(事物)。 表 3 列出了使用的嵌入式設備。
家庭服務中的控制過程,需要反應時間和互操作性。人機介面、數據存取訪問和分析服務,是本地和雲端運算上的服務。上面提到的兩個需求,都使用不同的協議處理:控制/通信上的 MQTT,和雲端服務上的 HTTP(RESTful API)是用於整合,並使所有子系統互操作的 IoT 協議。在提出的該層模式中,還使用 MQTT 協議、控制、數據處理,以及使用 RESTful 協議,到雲端的數據通信,來開發機器對機器(M2M)應用。
MQTT 使用開放的消息協議,該協議可以將遙測樣式的數據(即在遠端位置收集的測量結果),以消息的形式,從設備和感測器,沿著不可靠或受約束的網路傳輸,到伺服器(BROKER)。消息是簡單、緊湊的二進制數據包,有效載荷(壓縮的標頭,比超連結傳輸協議(HTTP)少得多的詳細資訊),並且非常適合推送簡單的消息傳遞方案,例如溫度更新或移動通知。例如,消息也可以很好地用於,將受約束的或更小的設備,和感測器連接到 Web 服務。
MQTT 通信協議,使所有對象可以互操作。透過此協議實現的發布者和訂閱者模式,可以互連所有設備和事物。該通信層由安裝在霧節點上的代理設備管理。不同的發布者和訂閱者,在不同的節點上實現。安裝了一個 Gateway 設備(霧節點)和兩個嵌入式控制器(邊緣節點),來控製家用電器和電源管理。事物和流程佈署在所有節點上。
邊緣節點控制子系統,霧節點根據決策樹,以及專家定義的規則,實現 AI 範例。霧設備將數據傳輸到雲端平台,以開發儀表板螢幕,來監看子系統的狀態。
可以開發新的雲端平台服務:事件檢測、機器學習處理、統計分析等。專家使用者設計基本的控制算法。在學習和訓練過程之後,將根據專家系統的結果,對這些算法進行調整和修改。在這項工作中,目標是在不損失生產力的情況下優化資源(控制和能源)。在邊緣或霧節點中,執行不同的控製過程;分類過程和決策樹在霧節點中實現。算法以 Python 語言實現。此語言的開源庫用於不同的應用。
4.3. 佈署與測試
對於現有建築物,邊緣節點交錯插入已安裝的控制器、配電板,以及感測器和執行器中。如果在分析階段指定了新的東西(電錶、氣候和控制器),則會安裝一些新的感測器/執行器。這項工作中佈署的邊緣節點具有以下優點:
.請勿干擾先前的安裝操作。
.他們使用新的專家規則和自動規則,引入新控件。
.他們測試和重新配置,在分析、學習和測試驗證中,設計更新的專家規則。
圖 7. 佈署在配電盤中的節點。 使用 IoT 協議通信,在不同節點中開發數據捕獲、控制算法、數據分析、儲存和通信服務
在電力管理過程中,專家使用者根據電力消耗、發電量、消耗負荷曲線、氣候數據和氣候預測數據,對具有選定流程的時間表,進行可程式處理。邊緣節點捕獲數據,並將其發送到霧節點。
霧節點處理室內和室外環境的日記數據,以及天氣狀況。霧節點還可以捕獲其他感測器數據。對房屋中的這些數據消耗和生成方式,進行檢測和分類。消費和發電結果,作為數據添加,以便與儲存的數據一起進行分析。可以使用機器學習方法開發,作為家用電器或人類活動檢測的智慧服務(圖8)。
4.3.1. 機器學習:數據捕獲過程(邊緣節點)和家用電器分類(霧節點)
連接在主配電盤中的電表,用於捕獲數據,並使用標準的 K 近似值,最近鄰(KNN)分類算法,來開發形式辨識模式。 KNN 是機器學習系統中最常見的方法之一。電表捕獲電流;如果連接了新的家用電器,則電流數據會更改。不同的家用電器具有不同的變化等級。
用於辨識家用電器的不同模式的主要變量,是連接時的電流水準差異。數據捕獲過程流程圖(圖9),顯示了在邊緣節點中實現的算法,以捕獲預處理並傳遞電力數據。
在此過程中,監督階段使用訓練數據集。接下來,真實場景中的驗證,將測試分類模式。家用分類設備將用於不同的服務:人類活動的辨識、負載控制、可再生能源管理、空調、安全性等。在訓練階段,已捕獲了不同的家用電器開機,以獲得一組形式。每個家庭都有一個矩心向量,將用於分類過程中的檢測。如上面所示的算法所示,分類器處理將產生連接時的電流數據作為輸入。KNN 分類過程流程圖(圖10)描述了 KNN 方法,它在霧節點中實現。
4.3.2. 可再生電源管理。控制電力自耗的決策樹
每個建築物都有不同的需求曲線,以及在接入電網方面的特定情況。為此,整合和可互操作的設施,可以實施適用於每種情況的不同解決方案,從而提供對太陽風資源的最佳管理,優化電源效率,簡化管理流程,並實現最高的成本節省。當可再生能源超過消耗的能源時,在使用 AC 耦合到電網的設施中,會出現問題。
在實驗工作中,太陽能在一天的中央時段的能量,大於所消耗的能量(圖11)。但是,在分析了消耗曲線之後,可以在這段時間內連接負載,以避免注入電網。可以透過設計一種算法,來滿足這一要求,該算法可以預測,何時發生此事件,以自動連接不同的負載。利用所有感測器和執行器的整合,和互操作通信,已經開發了在不同節點中,所實現的算法(圖12)。
13. 在電源管理子系統上開發的決策樹。 它由專業使用者設計,並整合在邊緣節點上。該決策樹的目的,在優化可再生能源的使用。
4.3.3. 基於 Edge 和 Fog 節點的 Control Home
圖 14 顯示了安裝在住宅房間中的邊緣節點。 該節點可以控制四個設備(設備),並捕獲感測器數據(功耗、發電量、溫度、濕度等)。該設備可以使用 MQTT 協議進行通信。該協議允許設備之間,進行其他類型的通信:智慧手機、新邊緣節點等。圖 7 和圖 14 顯示了可以在其他建築物中,佈署的標準實現。在所有系統中,都有配電板,這些配電盤佈署了霧節點和邊緣節點,如圖所示。
4.3.4. 使用物聯網協議的雲端服務
雲端服務可以監控,透過霧節點或人機介面(HMI)訪問的數據。 IoT 協議(MQTT)從任何已連接 Internet 的設備推送數據。事件檢測、儲存統計分析等其他服務,完善了該資源的功能。提供類似服務的不同平台,顯示了商用物聯網技術的狀態:Amazon IoT、Microsoft Azure、Ubidots 和 Thingspeak,是提供 IoT 平台的公司一些案例。提供了資源以及客戶端,和 IoT 平台之間的應用程式介面(API)通信,以便可以使用它們。
用於設計儀表板監控和管制的 HMI 資源,是這些平台上的主要實用功能之一。霧節點使用雲端 API 傳達數據和資訊,可以實施其他控制服務。在這些雲端平台上,預先建構了用於監控數據的儀表板設計。使用 API 實用功能,霧節點中的過程處理,會將數據發送到每個儀表板。API 文件指定了在設備、IoT 平台和 Mobile-Alerts Cloud 之間,交換數據的結構,以及用於加速項目的代碼案例和形成資料庫。
圖 15 顯示了在 Ubidots 雲平台上,設計的儀表板。Ubidots是本實驗工作中使用的物聯網平台。該模式可以在實現這些協議的層,和平台中使用不同的標準協議。圖 16 顯示了在雲端平台中,IF 變量 THEN 動作的事件配置。大多數物聯網平台,都提供此功能。
5. 結論
為了設計物聯網系統,越來越多地提出邊緣霧模式。但是,每個範例都提供特定應用領域的解決方案。不同子系統之間的整合和互操作性,可以改善這種情況,並提供更好的服務。這項工作的主要目的,是透過提出一種基於邊緣層和霧層,兩層體系結構的運算模式,來解決這個問題。透過這兩層,可以基於使用邊緣或霧節點中,嵌入式的設備捕獲數據所產生的新型有用資訊,來設計和開發新服務。這些節點使用雲端平台和 IoT 協議(例如 MQTT)。
MQTT 是作為不同層(霧 – 邊緣 – 雲)之間提出的通信協議,並進行實驗的。雲端平台用於開發儀表板的面板資訊和 Internet 上的新服務,例如控制、儲存和通信事件。該平台可用於透過 API,交付不同的服務。
該模式可以在現有建築物和新建築物中,開發這些服務。在這種情況下,要求每個子系統中的專家和專業人員,參與新服務的設計。
為了測試該模式的功能,並顯示如何在實際設施中,實現該模式,在住宅中進行了一項實驗性工作。在此霧和邊緣節點前後關聯中,描述了實現的幾個範例。開發了模式辨識和決策樹方法,以展示人工智慧在設計 IoT 解決方案中的潛力。已安裝服務的結果顯示,邊緣和霧節點佈署,產生了預期中整合和互操作性的好處。
提出的工作演示了,如何將邊緣和霧範例,整合到可以增強其優勢的新架構中,從而擴展了應用領域。該體系結構的主要科學貢獻,是整合、技術的互操作性,及其為開發 AI 服務提供的設施的範例。所有這些改進,都在已開發的實驗的不同示例中顯示。具體的優化和改進,將在以後的工作中進行。此外,使用機器學習平台,和 AI 範例的新控制規則,將確保可以創建和改進新的智慧服務。
附圖:圖1.自動建構子系統和資訊技術環境。
圖2.基於使用者為中心關係的模式。
圖3.通信架構。 每個等級都有不同的功能。 提出了兩個通信等級:IoT(使用消息隊列遙測傳輸(MQTT))和 Web(使用代表性狀態傳輸(REST)協議)。這些協議的層,涵蓋了已建立的整合和互操作性要求。
圖4. 在建築物的現有設施上實施的邊緣霧架構示例:邊緣節點是較低的層次,必須與安裝的設備進行新連接。互連所有子系統的霧節點,是透過整合連接到邊緣節點的新設備來實現的。邊緣和霧節點,可以佈署在所有建築物子系統中。
圖5. 住宅建築中的第一個實驗工作。
圖6. 整合在先前安裝的可再生子系統中,邊緣節點的示例。 該節點可以使用新算法控制 ON-OFF 開關,以管理發電過程,以及通信和監控電源數據。
表1.事物示例描述。寫入 ID、類型和節點數據,以配置 XML 文件。配置關聯性儲存在霧節點中。
表 2. 實驗工作中的分析和設計要求。
表 3. 實驗室內使用的嵌入式設備。
圖 7 顯示了分佈在配電板上的節點(邊緣和霧狀)。在此節點中,設計並安裝了功率計、ON-OFF 開關控件和 AI 服務。
圖 8. 佈署的智慧電源功能。在霧節點中實施的分類過程,可用於檢測電連接和人類活動。可以使用 IoT 通信實現其他服務
圖9. 邊緣節點中捕獲,並預處理的用電量數據;MQTT 協議用於通信數據。另外,其他節點可以使用捕獲的數據,來提供其他智慧服務,佈署了整合和互操作性。
圖10. 分類過程。處理捕獲的電數據以檢測家用電器連接。可以使用 IoT 協議整合,來設計其他智慧服務。
圖11. 該圖顯示了實驗工作中的消耗和生產數據。 在自儲存的電力自備設施中,沒有儲存並且沒有注入電網,所產生的能量必須即時使用,並且不得超過所消耗的能量。 能源經理必須預測此事件,並提前連接電荷。
圖 12. 用電自耗設施中的可再生電源管理。
圖 13 是在電源管理子系統中,開發的算法的示例。 可以在邊緣節點上安裝此過程。該節點獲取氣候數據預測,並預測系統是否可以在不儲存的情況下,使用可再生能源。
圖14. 佈署的邊緣節點。該節點可以使用新算法,控制 ON-OFF 開關,並可以在每個房間或建築物中,通信和監控感測器數據。
圖 15. 在雲平台上配置的儀表板。顯示了風力發電數據和預測風力。
圖 16. 在雲端平台上配置事件的儀表板:IF 事件 THEN 動作。 該服務顯示了,如何使用雲端訪問來控制設施。與霧節點的 Internet 通信,可以控制建築物中的不同子系統,並使用電子郵件,SMS 或其他 Internet 服務來通報事件。
資料來源:https://3smarket-info.blogspot.com/2021/02/iot-edge.html?m=1&fbclid=IwAR0uijX5WdNrfzmGjVsakFGaEsWivPgyH1zumxVr7fwvvgqtdFFTI6jJXS8
python開發環境差異 在 李開復 Kai-Fu Lee Facebook 的最讚貼文
分享好文,中學生要學電腦嗎?
作者:創新工場CTO、人工智慧工程院執行院長 王詠剛
文章来自半轻人微信公众号(ban-qing-ren)
………………………………
朋友的孩子高中剛畢業,已拿到美國頂尖大學(非電腦專業)的錄取通知。疫情影響,不知何時才能去學校報到。孩子想抓緊學習一下程式設計,為大學打好基礎。這孩子找我聊了一個多小時,從如何學程式設計,聊到非電腦專業和電腦專業的路徑差異,又聊到如何從不同角度認識電腦與程式設計。聊得比較寬泛,不知是否對這孩子有用。
回想我自己的高中時代:那時雖迷戀程式設計,卻完全沒有懂行的人指導。在我們那個四線城市的廠礦中學裡,開設電腦興趣課的老師知道的資訊還沒我多。我高一時跑到北京中關村逛街,卻完全沒意識到中國第一代頂尖程式師當時就在我身邊的低矮辦公樓裡寫代碼(這話說得並不準確,比如求伯君那年就主要是在珠海做開發),鼎鼎大名的UCDOS、WPS、CCED就出自他們之手……我在當時街邊的一家書店(位置似乎就在今天的鼎好大廈對面)買到了許多種印刷品質極低劣的電腦圖書。用今天的標準看,那就是一批盜版影印或未授權翻譯的國外圖書。可那批書竟成了我高中時代最寶貴的程式設計知識來源。
顯然,我在高中時根本就是野路子學電腦。現在後悔也沒用,當時我的眼界或能觸及的資源就那麼多。如果能穿越回30年前,我該對喜歡程式設計的自己說些什麼呢?這些年,我與世界上最好的一批程式師合作過,也參與過世界上最有價值的軟體系統研發——我所積累的一些粗淺經驗裡,有哪些可以分享給一個愛程式設計的中學生?
【問題1】中學生要不要學電腦?
當然要!
每個中學生都要學。只不過——建議大部分中學生使用“休閒模式”,小部分(不超過10%)中學生使用“探險模式”。
啊?兩個模式?那我該進入哪個模式?⟹請跳轉至【問題2】
【問題2】選哪個模式?
你癡迷電腦嗎?比如,你玩遊戲時會特別想知道這遊戲背後的代碼是如何編寫的嗎?再比如,就算老師家長不同意你學電腦,甚至當著你的面把電腦砸了,你也要堅持學電腦嗎?如果是,恭喜你進入“探險模式”⟹請跳轉至【問題200】
你對數學有興趣嗎?比如,你看到街邊建築的曲線,就會在腦子裡琢磨曲線對應的函數或方程嗎?每當手裡攥著幾粒骰子,你就會不由自主地計算概率嗎?如果是,歡迎進入“探險模式”⟹請跳轉至【問題200】;當然,如果有些猶豫,也可以先進入“休閒模式”⟹請跳轉至【問題100】
即便你對電腦和數學興趣不大,家長、老師還是強烈建議你學電腦嗎?就算你一百個沒時間一千個不願意,家長、老師還是會逼著你學電腦嗎?如果是,建議你主動進入“休閒模式”並向家長、老師彙報說“我已經按照前谷歌資深軟體工程師的專業建議在認真學程式設計了”⟹請跳轉至【問題100】
其他情況,一律進入“休閒模式”。⟹請跳轉至【問題100】
【問題100】休閒模式 | 主要學什麼?
“休閒模式”將電腦視為我們生活、工作中的必備工具,主要學習如何聰明、高效、優雅地使用計算設備。這裡說的計算設備,包括所有形式的電腦、手機、遊戲機、智慧家電以及未來一定會進入生活的自動駕駛汽車。
什麼什麼?你已經會用電腦、會玩手機、會打遊戲了?別著急,慢慢往下看。
【問題101】休閒模式 | 我會用搜尋引擎嗎?
我知道你會用百度搜習題答案。但,習題答案不是知識。你會用搜尋引擎來搜索和梳理知識嗎?請試著用電腦和你喜歡的搜尋引擎來解決如下兩個問題:
(1)圓周率𝜋的計算方法有多少種?每種不同的計算方法分別是由什麼人在什麼時代提出的?借助電腦,今天人們可以將圓周率𝜋計算到小數點後多少位?將圓周率𝜋計算到小數點這麼多位元,一次大概需要花掉多少度電?
(2)全球大約有多少個廁所?在發展程度不同的國家,分別有多少比例的人可以享用安裝了抽水馬桶的衛生廁所?為什麼比爾·蓋茨曾大力推動一個設計新型馬桶的研發專案?比爾·蓋茨的公益組織在這個專案上大約花費了多少資金,最終收到了多大的效果?
如果你沒法快速得到上述問題的全部答案,那就給自己設一個小目標:一個月內,學會用搜尋引擎系統地獲取、梳理一組知識點的全部技巧。
【問題102】休閒模式 | 接下來學什麼?
建議學好典型的工具軟體。比如,我知道你會用Office了,但用Office和用Office是很不一樣的。對生活、學習、工作來說,學好、學透一個工具軟體比鑽研程式設計技巧更實用。
你會用Excel來管理班級公益基金的預算和實際收支情況嗎?
你會用Excel做出過去20年裡全球大學排名的演變趨勢圖嗎?
你會用Word排版一篇中學生論文嗎?論文中的圖表和最後的參考文獻部分該如何排版?
你會用Word編排一份班級刊物,包含封面、扉頁、目錄、插圖頁、附錄、封底等部分,可以在列印後直接裝訂成冊嗎?
PowerPoint呢?你有沒有研究過蘋果公司發佈會上那些幻燈片的設計?當約伯斯(多年以前)或蒂姆·庫克站在幻燈片前的時候,他們的演講思路是如何與幻燈片完美結合的?
還有哦,別忘了學學如何為數碼照片做後期,如何用電腦或手機剪視頻,如何為剪輯好的視頻配字幕,如何將照片、音樂、視頻等素材結合起來,做出一段吸引人的快手/抖音短視頻。
最後,抽空玩玩那些設計精妙的遊戲吧,比如《紀念碑穀》、《塞爾達傳說:曠野之息》之類;同時,遠離那些滿屏廣告,或者一心騙你在遊戲裡充值花錢的垃圾。
【問題103】休閒模式 | 不學學知識嗎?
當然要學知識。下面每種實用的電腦知識都夠大家學一陣子了。
(1)色彩知識:你知道同一張數碼照片在不同品牌的手機螢幕上、不同的電腦螢幕上、不同的智慧電視上顯示時,為什麼經常有較大色差嗎?你知道有一些色彩只適合螢幕顯示,不適合列印輸出嗎?你知道軟體工具裡常用的RGB、HSL之類的色彩空間都是什麼意思嗎?如何在設計PowerPoint幻燈片時選擇一組和諧美觀的色彩?
(2)字體知識:你知道什麼是襯線字體,什麼是無襯線字體嗎?你知道網頁中常用的英文字體都有哪些嗎?你知道商務演講時最適用于幻燈片的英文字體有哪些嗎?你知道電腦和手機常用的黑體、宋體、仿宋體、楷體等中文字體分別適合哪些實際應用場合嗎?你會將不同字體混排成一個美觀的頁面嗎?
(3)網路知識:你知道5G是什麼嗎?你知道5G和4G在通信頻寬、通信距離上的具體區別嗎?你知道什麼是路由器,什麼是防火牆嗎?你知道如何配置路由器,如何配置防火牆嗎?微信或QQ聊天時,對方發的文字、語音或視頻是如何傳送到你的手機上的?
(4)應用知識:淘寶中搜索得到的商品資訊是從哪裡來的?商品是按什麼方式排序的?為什麼購物APP經常會推薦給你一些曾經買過、看過的商品?你知道如何為自己建立個人網站嗎?你知道如何管理微信公眾號嗎?
(5)安全知識:你知道網路上的釣魚攻擊是怎麼回事兒嗎?你知道什麼是電腦漏洞嗎?你知道駭客為什麼想把一大批受攻擊的電腦變成可以遠端操控的傀儡機嗎?你知道為什麼現在很多手機APP都要通過短信發送驗證碼嗎?如果驗證碼被壞人截獲,你會面臨哪些風險?
這裡只是舉例。實用的電腦知識還有很多。大家可以自己發掘。
【問題104】休閒模式 | 我需要學程式設計嗎?
可以學,但不是必須。即便學,也只需要根據自己的需要,學那些最能幫你解決現實問題的部分。
【問題105】休閒模式 | 我該學什麼程式設計語言?
在“休閒模式”裡,電腦就是工具,程式設計也是工具,夠用就好。學什麼程式設計語言,完全看你想要電腦幫你做什麼。
• 如果你想對資料處理有更多自主權,那不妨學學Python;
• 如果你想做簡單的交互演示程式,那就先把JavaScript學起來;
• 如果你想更好、更快地寫論文,那不妨學學LaTeX(什麼什麼,LaTeX不是程式設計語言?你太小看LaTeX了);
• 如果你想學做簡單的手機APP,那麼,Android手機就學Java,蘋果手機就學Swift好了;
• 如果你只想知道程式設計是怎麼回事,那……從Python或JavaScript開始就行。其實,跟五六歲的小朋友一起學學Scratch圖形程式設計也不錯。
【問題106】休閒模式 | 我需要學人工智慧嗎?
在“休閒模式”裡,最需要學的不是“人工智慧的實現原理”,而是“什麼是人工智慧”,以及“人工智慧能做什麼,不能做什麼”。
• 在手機上試一試,人工智慧做語音辨識時能做到什麼水準?哪些話容易識別,哪些話不容易識別?
• 打開機器翻譯軟體,試一試哪些資訊翻譯得好,哪些資訊翻譯得不好?
• 手機上的拍照軟體一般都有人臉識別功能。試一試人臉識別在什麼場景下做得好,什麼場景下做得不好?
• 找一部講人工智慧的科幻電影,用自己的判斷解讀一下,電影裡哪些技術有可能成為現實,哪些技術存在邏輯矛盾。
【問題107】休閒模式 | 推薦什麼參考書、參考文獻?
書不重要,豆瓣評分7分以上的電腦應用、程式設計甚至科普類圖書都可以拿來翻翻。
直接在知乎裡搜索你想瞭解或學習的知識點可能更有效率。
如果你意猶未盡,覺得自己剛活動開筋骨,還想挑戰更高層次,歡迎進入“探險模式”。⟹請跳轉至【問題200】
否則,“休閒模式”到此結束。⟹請離開此問答
【問題200】探險模式 | 主要學什麼?
“探險模式”需要有挑戰精神。電腦科學的世界技術演進快,脈絡複雜,要想在探索時不迷路,你得通過有順序、有系統地學習電腦知識,慢慢構建出一張可以在未來幫你走得更遠的思維地圖來。
在“探險模式”裡,電腦就不止是一件能快速計算的工具了。電腦更像是我們大腦的一種延伸。這既包括認知能力的延伸,也包括認知邏輯的延伸。隨著學習深入,大家會逐漸體會到電腦所具有的多維度能力:
電腦是一種可以表示不同類型資訊(數、符號、文字、語音、圖像、視頻、虛擬空間、抽象邏輯)的“資訊管理機”;
同時,電腦也是一種可以連續執行指令以完成特定的資訊處理任務的“指令處理機”;
同時,電腦還是一種可以在知識與邏輯層面完成特定推理任務的“知識推理機”;
同時,電腦也是一種可以從人類給定的資料或自我生成的資料中總結規律,建立模型,自主完成某些決策的“智慧學習機”。
“探險模式”的目標就是盡可能準確地認識電腦,掌握有關電腦運行的最基本規律。有了這些基礎。未來在大學期間或工作中,你就能更容易地設計電腦軟硬體系統,或是設計出碳基大腦(人類)與矽基大腦(機器智慧)之間的最佳協作方案。
【問題201】探險模式 | 我的英語水準足夠嗎?
蘋果每年秋季的新品發佈會,不加字幕的話,你能聽懂多少?
能聽懂大部分:建議在學習電腦的過程中,盡可能使用英文教材、英文文檔。
能聽懂小部分:建議將原來準備學電腦的時間,分出一部分來學英語。
只能聽懂“你好”“再見”之類:⟹請離開此問答。然後,把原來準備學電腦的時間用於學英語,六個月後再回來。
【問題202】探險模式 | 我的數學水準足夠嗎?
如果你是數學和數學應用小能手——較複雜的數學問題總能快速找到核心思路,或快速簡化為簡單問題;很容易就能將抽象概念映射到具體的數學圖形,或將數學問題與相應的現實問題關聯在一起:請繼續探險之旅。
如果你應付正常數學課程感到吃力:建議將原來準備學電腦的時間,分出一部分來學數學。
如果你還搞不清楚什麼是方程、函數、集合、概率……:⟹請離開此問答。然後,把原來準備學電腦的時間用於學數學,六個月後再回來。
【問題203】探險模式 | 為什麼強調英語和數學?
(1)統計上說,最好的電腦參考資料大都是英文寫的,最好的電腦課程大都是用英文講的,最新的電腦論文大都是用英文發表的。
(2)函數、方程、坐標系、標量、向量、排列組合、概率這些中學數學裡會初步學習到的數學知識,是電腦科學的基礎。
【問題204】探險模式 | 電腦知識那麼多,正確的學習順序是什麼?
最重要的順序有兩個。建議先從順序一開始,學有餘力時兼顧兩個順序。
順序一:自底向上,即,自底層原理向上層應用拓展的順序。
電腦原理的基礎知識:
為什麼每台電腦(包括手機)都有CPU、記憶體和外部設備?
(馮·諾依曼體系結構的)記憶體中為什麼既可以存儲資料,也可以存儲指令?
CPU是如何完成一次加法運算的?
程式設計語言的基礎知識:
資料類型,值,變數,作用域……
語句,流程控制語句……
過程、方法或函數,類,模組,程式,服務……
編譯系統的基本概念:
電腦程式是如何被解釋或編譯成目標代碼的?
演算法和資料結構的基礎知識:
陣列,向量,鏈表,堆,棧,二叉樹,樹和圖……
遞迴演算法,排序演算法,二叉樹搜索演算法,圖搜索演算法……
應用層的基礎知識:
為什麼電腦需要作業系統?設備驅動程式是做什麼的?
網路通信的基本原理是什麼?流覽器是怎麼找到並顯示一個網頁的?
資料庫是做什麼用的?
虛擬機器是怎麼回事?
人工智慧系統的基礎知識:
先熟悉些線性代數、概率和數學優化的基礎知識。
什麼是機器學習?從簡單的線性回歸中體會機器學習的基本概念、基本思路。
什麼是神經網路?什麼是深度神經網路?為什麼神經網路可以完成機器學習任務?
如何使用PyTorch或TensorFlow實現簡單的深度學習功能?
順序二:自頂向下,即,自頂層抽象邏輯向下層具體邏輯拓展的順序。
• 電腦的本質是什麼?
• 什麼是圖靈機?什麼是通用圖靈機?
• 什麼是讀取﹣求值﹣輸出迴圈(Read–eval–print Loop,REPL)?
如何用自頂向下的方式理解(解析、解釋、編譯)一段程式碼?
• 靜態語言和動態語言的區別?
如何理解變數與資料類型之間的綁定關係?
• 什麼是函數式程式設計?
程式設計語言中,函數的本質是什麼?
函數為什麼可以像一個值一樣被表示、存儲、傳遞和處理?
• 什麼是物件導向?
類的本質是什麼?
如何用物件導向的方式定義個功能介面?
如何依據介面實現具體功能?
• 什麼是事件驅動?
什麼是事件?事件如何分發到接收者?
如何在事件驅動的環境中理解代碼的狀態和執行順序?
【問題205】探險模式 | 如何提高程式設計水準?
在掌握基本知識體系的基礎上,學好程式設計只有一條路:多程式設計,多參加程式設計比賽,多做程式設計題,多做實驗項目,多找實習機會——其中,能參與真實專案是最有價值的。
【問題206】探險模式 | 該從哪一門程式設計語言學起?
我個人推薦的程式設計入門語言(可根據情況任選):
Python
Java
Swift
C#
JavaScript / TypeScript
Ruby
……
可能不適合入門,但適合後續深入學習的語言:
C
C++
Go
Objective-C
組合語言
機器語言(CPU指令集)
Shell Script
Lua
Haskell
OCaml
R
Julia
Erlang
MATLAB
……
【問題207】探險模式 | 如何選參考書和參考資料?
(1)強烈推薦的參考書和參考資料:
• MIT、Stanford、CMU、UC Berkeley這四所大學中任何一個電腦專業方向使用的教學參考書或參考資料。網上可以查到這些學校電腦專業方向的課程體系,有的學校甚至公開了課程視頻。其中往往會列舉參考書和參考資料連結。
• 維琪百科(英文)上的數學、電腦科學相關條目。
• Github上star數在1000以上的開原始程式碼和開來源文件。
(2)強烈推薦但須小心辨別的參考資料:
知乎上的數學、電腦科學相關條目。使用時需要格外注意三件事:
儘量只看高贊答案或高贊文章;
辨別並避開廣告軟文;
辨別並避開純抖機靈的故事或段子。
Stack Overflow上的程式設計問題解答:
自己動手實驗,辨別解答是否有效。
CSDN上的程式設計問題解答:
自己動手實驗,辨別解答是否有效。
(3)其他推薦的參考書和參考資料:
國內專業作者寫作的專業技術書籍(豆瓣評分7分以上的)。
大廠(Google、Facebook、Microsoft、Amazon、阿裡、騰訊、百度、頭條等)資深工程師的技術公號、專欄、博客等。
著名圖書系列:如O’Reilly的動物封面的系列圖書(請注意最新版本和時效性)。
國內翻譯的著名技術圖書(譯本在豆瓣評分7分以上的)。
(4)儘量避免的參考書和參考資料:
• 已經過時的圖書或參考資料。
• 作者或譯者人數比章節數還多的專業圖書。
• 百度百科上的數學或電腦科學相關資料。
什麼什麼?你這篇問答居然沒有推薦一本具體的圖書?是,沒錯。如果你覺得即便有了上面的線索,自己還是找不到好書好資料,那也許你還是適合“休閒模式”⟹請跳轉至【問題100】
python開發環境差異 在 吳老師教學部落格 Youtube 的精選貼文
[進階]網頁資料擷取、分析與資料視覺化能力7(正規表示法&證照201搜尋字詞用re的findall方法算詞頻&抓取email與圖片網址與電話號碼&202美元收盤匯率&203台灣彩券程式差異與204題&301學生成績&如何用Pandas讀與寫CSV與EXCEL&301&303果菜批發市場拍賣行情)
01_重點回顧與正規表示法
02_證照201搜尋字詞用re的findall方法算詞頻
03_正規表示法抓取email與圖片網址與電話號碼
04_證照201問題說明與證照202美元收盤匯率
05_203台灣彩券爬取大樂透開獎資料
06_203台灣彩券程式差異與204題
07_204 新北市大專院校名單
08_格式化與證照301學生成績
09_如何用Pandas讀與寫CSV與EXCEL
10_用Pandas讀取CSV說明
11_用Pandas讀取EXCEL與Dataframe說明
12_ 證照301學生成績排序與修改資料
13_證照303果菜批發市場拍賣行情
完整影音
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2020_3
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
[初階]從VBA的自動化到PYTHON網路爬蟲應用
01 建置Python開發環境 3
02 基本語法與結構控制 3
03 迴圈敘述演示與資料結構及函式 3
04 檔案處理與SQLite資料庫處理 6
05 TQC+Python證照第1、2、3類:
基本程式設計與選擇敘述與迴圈敘述 12
06 TQC+Python證照第4、5類:
進階控制流程與函式(Function) 9
[進階]網頁資料擷取、分析與資料視覺化能力
07 網頁資料擷取與分析 3
09 實戰:處理 CSV 檔和 JSON 資料 3
10 實戰:PM2.5即時監測顯示器轉存資料庫 3
11 實戰:下載台銀外匯、下載YAHOO股市類股 3
12 實戰:下載威力彩開獎結果 3
13 TQC+Python 3網頁資料擷取與分析第1類:資料處理能力 3
14 TQC+Python 3第2類:網頁資料擷取與轉換 6
15 TQC+Python 3第3類:資料分析能力 6
16 TQC+Python 3第4類:資料視覺化能力 6
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰 出版日期:2016/11/29
吳老師 109/8/23
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝
python開發環境差異 在 吳老師教學部落格 Youtube 的最佳解答
[進階]網頁資料擷取、分析與資料視覺化能力7(正規表示法&證照201搜尋字詞用re的findall方法算詞頻&抓取email與圖片網址與電話號碼&202美元收盤匯率&203台灣彩券程式差異與204題&301學生成績&如何用Pandas讀與寫CSV與EXCEL&301&303果菜批發市場拍賣行情)
01_重點回顧與正規表示法
02_證照201搜尋字詞用re的findall方法算詞頻
03_正規表示法抓取email與圖片網址與電話號碼
04_證照201問題說明與證照202美元收盤匯率
05_203台灣彩券爬取大樂透開獎資料
06_203台灣彩券程式差異與204題
07_204 新北市大專院校名單
08_格式化與證照301學生成績
09_如何用Pandas讀與寫CSV與EXCEL
10_用Pandas讀取CSV說明
11_用Pandas讀取EXCEL與Dataframe說明
12_ 證照301學生成績排序與修改資料
13_證照303果菜批發市場拍賣行情
完整影音
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2020_3
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
[初階]從VBA的自動化到PYTHON網路爬蟲應用
01 建置Python開發環境 3
02 基本語法與結構控制 3
03 迴圈敘述演示與資料結構及函式 3
04 檔案處理與SQLite資料庫處理 6
05 TQC+Python證照第1、2、3類:
基本程式設計與選擇敘述與迴圈敘述 12
06 TQC+Python證照第4、5類:
進階控制流程與函式(Function) 9
[進階]網頁資料擷取、分析與資料視覺化能力
07 網頁資料擷取與分析 3
09 實戰:處理 CSV 檔和 JSON 資料 3
10 實戰:PM2.5即時監測顯示器轉存資料庫 3
11 實戰:下載台銀外匯、下載YAHOO股市類股 3
12 實戰:下載威力彩開獎結果 3
13 TQC+Python 3網頁資料擷取與分析第1類:資料處理能力 3
14 TQC+Python 3第2類:網頁資料擷取與轉換 6
15 TQC+Python 3第3類:資料分析能力 6
16 TQC+Python 3第4類:資料視覺化能力 6
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰 出版日期:2016/11/29
吳老師 109/8/23
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝
python開發環境差異 在 吳老師教學部落格 Youtube 的最佳解答
[進階]網頁資料擷取、分析與資料視覺化能力7(正規表示法&證照201搜尋字詞用re的findall方法算詞頻&抓取email與圖片網址與電話號碼&202美元收盤匯率&203台灣彩券程式差異與204題&301學生成績&如何用Pandas讀與寫CSV與EXCEL&301&303果菜批發市場拍賣行情)
01_重點回顧與正規表示法
02_證照201搜尋字詞用re的findall方法算詞頻
03_正規表示法抓取email與圖片網址與電話號碼
04_證照201問題說明與證照202美元收盤匯率
05_203台灣彩券爬取大樂透開獎資料
06_203台灣彩券程式差異與204題
07_204 新北市大專院校名單
08_格式化與證照301學生成績
09_如何用Pandas讀與寫CSV與EXCEL
10_用Pandas讀取CSV說明
11_用Pandas讀取EXCEL與Dataframe說明
12_ 證照301學生成績排序與修改資料
13_證照303果菜批發市場拍賣行情
完整影音
http://goo.gl/aQTMFS
教學論壇(之後課程會放論壇上課學員請自行加入):
https://groups.google.com/forum/#!forum/tcfst_python_2020_3
懶人包:
EXCEL函數與VBA http://terry28853669.pixnet.net/blog/category/list/1384521
EXCEL VBA自動化教學 http://terry28853669.pixnet.net/blog/category/list/1384524
[初階]從VBA的自動化到PYTHON網路爬蟲應用
01 建置Python開發環境 3
02 基本語法與結構控制 3
03 迴圈敘述演示與資料結構及函式 3
04 檔案處理與SQLite資料庫處理 6
05 TQC+Python證照第1、2、3類:
基本程式設計與選擇敘述與迴圈敘述 12
06 TQC+Python證照第4、5類:
進階控制流程與函式(Function) 9
[進階]網頁資料擷取、分析與資料視覺化能力
07 網頁資料擷取與分析 3
09 實戰:處理 CSV 檔和 JSON 資料 3
10 實戰:PM2.5即時監測顯示器轉存資料庫 3
11 實戰:下載台銀外匯、下載YAHOO股市類股 3
12 實戰:下載威力彩開獎結果 3
13 TQC+Python 3網頁資料擷取與分析第1類:資料處理能力 3
14 TQC+Python 3第2類:網頁資料擷取與轉換 6
15 TQC+Python 3第3類:資料分析能力 6
16 TQC+Python 3第4類:資料視覺化能力 6
上課用書:
參考書目
Python初學特訓班(附250分鐘影音教學/範例程式)
作者: 鄧文淵/總監製, 文淵閣工作室/編著
出版社:碁峰 出版日期:2016/11/29
吳老師 109/8/23
EXCEL,VBA,Python,自強工業基金會,EXCEL,VBA,函數,程式設計,線上教學,PYTHON安裝
python開發環境差異 在 windows10的python環境建置(二) conda使用教學 - YouTube 的推薦與評價
windows10的 python環境 建置系列第二部影片介紹如何使用conda創建並管理不同專案的虛擬 環境 ,其中包括:1. 虛擬 環境 的意義虛擬 環境 是用來隔離不同專案 ... ... <看更多>
python開發環境差異 在 [問題] python開發環境的差異? | python ide推薦ptt 的推薦與評價
[問題] python開發環境的差異? ...有推薦PythonWin、使用VirtualBox虛擬機搭配Linux/Ubuntu環境、PyCharm等,也有遇過工程師說他會直接在 ... ... <看更多>
python開發環境差異 在 [問題] python開發環境的差異? - PTT 熱門文章Hito 的推薦與評價
初學python,教師是建議我們用Jupyter。但是每次要從windows開到Jupypter都有點麻煩,考慮換別的環境。看了許多網路上的介紹:有推薦PythonWin、使用Virtual Box 虛擬 ... ... <看更多>