Tuesday, April 16, 2019

2019 Spring Week9 五專網際內容管理 期中考自評影片

2019 Spring Week9 五專網際內容管理 期中考自評影片

請各學員依照

https://2019wcm.blogspot.com/2019/04/2019-spring.html

說明

進行期中考週各項任務.

影片上傳後, 以類似下方的 anchor 標註, 將影片連結留在回應區 (Comments):
https://youtu.be/Lc4GaaS7-jA

Friday, April 12, 2019

2019 Spring 期中考週

學員期中報告影片錄製

上課鐘聲響後 20 分鐘內, 各學員必須啟動 ShareX, 在電腦教室錄製無語音, 至多五分鐘的期中報告自評影片, 拍攝過程中, 可利用 PowerPoint 或其他文字編輯器, 引導影片觀看者了解影片中所要呈現的網站、倉儲或特定的歷程內容.

影片內容必須清楚呈現各學員從開學至第八週期間, 與課程內容相關的各項任務執行所完成內容.

影片標題與說明

影片錄製完成後, 請上傳至個人的 Youtube 網站, 並且在影片標題註記「國立虎尾科技大學機械設計工程系 (or 精密機械工程科) 期中報告」並加上課程名稱以及學員學號. 影片說明欄位必須標示與影片內容有關的個人倉儲、網站以及其他相關網際連結.

學員填寫自評表單

上課鐘聲響後 25 - 30 分鐘內, 各學員將在即時網際試算表上填寫期中自評成績.

個人期中報告影片嵌入網頁

第一堂上課結束前, 各學員必須以期中報告作為 H1 頁面標題, 將上述個人期中報告影片, 依照學號順序, 嵌入分組網站(or 個人網站) 頁面中, 若該課程已經透過 Github Classroom 分組, 各學員必須以個人身分註記, 在分組倉儲中進行新增提交推送, 隨後進行改版學員, 則必須設法 git pull 並處理內容衝突或合併後改版.

學員口頭期中報告

自第二堂課起, 各學員依據上述所完成的各項任務內容,  按照學號順序, 進行 2-3 分鐘的口頭報告.


Wednesday, April 10, 2019

GitExtensions

最近使用 ungit 的經驗並不是太好, 即使在硬碟中執行的速度依然不快, 所產生的結果也難令人滿意, 於是想要試試 GitExtensions

https://github.com/gitextensions/gitextensions

官方除了安裝版, 也提供可攜版本 https://github.com/gitextensions/gitextensions/releases, 只是初步啟動時讀取使用者設定的過程, 接連當了幾次, 使用者也可以下載 KMOL 製作的 GitExtensions.7z, 打算先使用一陣子看看.

與 ungit 相同, 當使用 ssh 與 Github 倉儲連線時, 必須使用 OpenSSH, 而非 putty.

GitExtensions 的設定位於 Tools - Settings, 與 KMOL 可攜系統配合的 HOME 設定, 位於 Git - Paths 下, 目前若以不同 HOME 啟動 start.bat, 使用 GitExtensions 前必須先確定 HOME 與 start.bat 中所使用的 HOME 設定一致, 否則 git push 時 OpenSSH 將無法正確讀取與 Github 帳號 public key 對應 HOME 目錄下 .ssh 中的 private key.

Tuesday, April 9, 2019

電腦初學者的網際內容管理

第一步

網路連線設定

了解機械設計系電腦輔助設計室電腦的網路設定, 其中包括 IPv4 網路與 IPv6 網路設定.

正常情況下, 電腦輔助設計室中的 64 台電腦透過 IPv4 協定下的 DHCP 與 NAT 上網, 各電腦以 DHCP client 取得 192.168.1.* 的網路位址, 然後以 NAT 的一組外部 IP 上網, 通常必須設定 Proxy Server 為 http://proxy.kmol.info:3128 後上網會比較順暢, 但若 8 台 Proxy Servers 無法正常運作時, 則取消 Proxy Server 的設定.

瀏覽器代理主機設定

了解如何設定 Google Chrome 與 Firefox 瀏覽器的代理主機設定.

申請 Github 帳號

利用 Gmail 帳號申請 Github 帳號, 申請後利用電子郵箱收信進行確認後, 就可以在 Github 上建立倉儲.

第二步

配置可攜程式環境

取得 Windows 10 64 位元環境下的可攜程式環境 (下載  2019_cdb_w5.7z), 下載後解開目錄, 放入 USB3.0 規格以上的隨身碟或隨身硬碟.

以滑鼠點擊 start.bat 開啟可攜隨身系統, 以 stop.bat 關閉可攜隨身系統, 隨身碟必須在關閉所有應用程式執行下, 才可正常退出.

了解基本的 DOS (Disk Operating System) 指令

C:\> 符號為 DOS 命令列視窗的回應 (Prompt), 表示目前在 C 槽硬碟的 \ 根目錄, 若要切換到 Y 槽, 則在電腦的回應後, 輸入 Y:, 命令列將轉為

Y:\>

若要更換目錄, 則使用 cd, 也就是 change directory 的意思, 例如:

Y:\>cd tmp

表示要從 Y 槽的根目錄更換到 tmp 目錄, 也就是

Y:\tmp>

若要再回到 Y 槽的根目錄, 可以使用 cd ..

表示要從目前所在目錄, 往上跳回一個目錄, 也就是重新回到 Y 槽的根目錄.

另外, 無論目前位於哪一個子目錄, 也可以使用 cd \

直接回到根目錄.

或者從 Y:\> 直接使用

cd \tmp\repo\ssh\wcm2019

直接從 Y 槽的根目錄, 跳進 Y:\tmp\repo\ssh\wcm2019>

此外, 常用的 DOS 指令有:

dir - 列出目前所在目錄的內容

mkdir - 隨後加上要建立目錄的名稱, 可以建立目錄

cls - clear screen, 清除目前的命令列顯示的內容

第三步

建立 Git 倉儲, 並 clone 倉儲至近端工作後, 對遠端倉儲改版

可攜程式系統中已經內建 git, 可以在啟動 start.bat 後, 透過 path 的設定, 直接執行 git 指令.

建立 Git 倉儲, 共分為兩類, 一類是直接在 Github 網際介面下建立倉儲時, 要求建立 README.md 檔案, 之後可以直接在近端, 以 git clone 加上倉儲連線 URL, 將倉儲克隆一份到近端, 並以最新版本作為工作目錄, 使用者改版後, 可以直接透過 git add, commit 與 push 對遠端倉儲改版.

另一類則是故意在 Github 網際介面下建立倉儲時, 不要建立任何檔案, 而是在近端自行利用 git 指令建立倉儲架構, 新增內容後, 以 git remote add 設法在近端倉儲中納入 origin URL 後, 將近端倉儲版本新增提交推送到遠端.

git add

git add 可以用來新增一個檔案, 數個檔案, 或在之前提交後所新增的所有內容.

git add 在 GIT 架構下, 是對所新增或修改的內容拍快照:

git add . adds all modified and new (untracked) files in the current directory and all subdirectories to the staging area (a.k.a. the index), thus preparing them to be included in the next git commit . Any files matching the patterns in the .gitignore file will be ignored by git add

git commit 

git commit 執行之前, 必須使用 git config 建立臨時或永久的身分註記, 因為 GIT 在展開所有改版內容時, 必須明確登錄這些變更的作者與時間.

當使用者採用 git commit -m "改版說明訊息", 此次提交到 .git 目錄下的更動內容, 均會綁定使用者身分與改版所輸入的說明訊息.

git push

git push 在隨後沒有輸入遠端 URL 代號時, 表示要推送到 origin, 若透過 git remote add 設定其他代號與 URL 對應時, git push 加上代號, 就可以將此次的提交內容, 推送到指定的 URL 所在遠端倉儲.

第四步

自行建立靜態內容管理網站

利用 CMSimfly (https://github.com/chiamingyen/cmsimfly) 內容, 建立自己的 Github Pages 網站

第五步

管理網站內容

學習如何使用 CMSimfly, 在網站中加入各種內容

第六步

使用 Flask, bs4 與 lxml 模組

了解 CMSimfly 如何建構, 並且嘗試修改現有功能, 除錯或建立自己的網際內容管理系統

第七步

虛擬主機下的類 Github 網站

如何利用 Fossil SCM, 在 Virtualbox 中的 Ubuntu 18.04-2 (8.5 GB) 建立類似 Github 的系統, 可以放入 CMSimfly 的靜態網頁

第八步

實體主機下的網際內容管理

如何在實體主機上安裝 Ubuntu 18.04 (https://www.ubuntu.com/about/release-cycle), 配置網路連線, 然後架構 uwsgi 環境下的 CMSimfly 動態網站, 或建立 Fossil SCM 用來伺服管理 CMSimfly 下有版次管理的靜態網頁, 或利用 nginx 伺服無版次管理的 CMSimfly 靜態網頁.

Monday, April 8, 2019

V-rep 與 Webots 機器人模擬系統

2013 年 1 月 10 日,  V-rep 宣布開源, 以 GPL3 使用授權釋出, 允許非營利學校免費使用, 商業使用必須付費, 檔案格式未公開.

2018 年 12 月 18 日, Webots 宣布開源 (https://github.com/omichel/webots), 並以 Apache 2 使用授權釋出, 檔案沿用 VRML97 格式, 使用與延伸上幾乎沒有任何限制.

Thursday, April 4, 2019

KMOLab 在傳授甚麼?

KMOL

KMOL 是 Knowledge Management & Optimal utilization Lab, 也就是知識管理與最佳化應用實驗室的簡稱, 代表的標誌為雙峰 Camel, 取與 KMOL 讀音相近, 且駱駝的雙峰可以代表 KMOL 所強調的知識與應用, 或者是概念與知識互動轉換的概念.



KMOL 中的 K, 代表知識, 根據 https://en.wikipedia.org/wiki/C-K_theory 中的說明, 代表使用者所具備的知識, 可用於解決所面臨的問題, 至於 C-K 設計理論中的 C, 則是概念, 可能是該想法源自已經失效的知識, 或者是目前仍無法用於解決問題的想法, 必須進一步研究補強, 使概念成為知識, 方能解題.

KMOL 創於 2008 年, 當時的駱駝雙峰各自代表知識與應用, 而隨著在 2016 年 C-K Design Theory 的導入, 目前的駱駝雙峰分別代表概念與知識, 隨著對於特定主題的研究投入, 可讓先前只具概念的想法, 逐步化為知識而可用來解題, 反之, 若不積極作為, 持續改進, 先前原本以為可以用於解決特定問題的知識, 隨著時空背景的轉換, 可能早就已經成為無法真正用來解題的概念.

有了以上的認知, 應該就比較能夠體會 KMOL 所強調使用的可攜程式環境系統, 為何必須隨著各工具的改版而不斷進行抽換測試的出發點, 因為在全球協同的現況中, 各產品開發成員都必須時時檢查驗證自己所認為具備的知識庫與概念庫, 那些內容是可以用於解題, 而那些則必須在不同的配置更動下, 才能讓概念轉化為知識而派上用場.

KMOL 信念

二十一世紀的科技大學, 在培育具國際觀與在地文化素養, 能適應環境並成功面對挑戰之專業人才. 所謂專業, 即具有專長, 能夠就業之謂. 所謂文化者, 因思考及概念而有之教化. 所謂素養, 即平日的涵養.

KMOL 除了希望培訓具有國際觀與在地文化素養的專業人才外, 特別鼓勵年輕人仔細閱讀下列兩則引言, 其中對於所謂追求卓越與大學生的職志, 有明確的定義:

卓越是一種舉止得宜的習慣
Excellence is an art won by training and habituation. We do not act rightly because we have virtue or excellence, but we rather have those because we have acted rightly. We are what we repeatedly do. Excellence, then, is not an act but a habit.
— Aristotle (384 BC – March 7, 322 BC)
卓越須經由訓練與習慣養成才能獲得。並非具備品德或卓越能讓人舉止得宜,反而是舉止得宜能讓人卓越。經過切身重複實作,才可體會,卓越並非一種作為,而是習慣。
— 亞理士多德 (西元前 384 年 – 西元前 322 年 3 月 7 日)
大學生應有的職志
體魄康強, 精神活潑, 舉止端莊, 人格健全, 便是大學生的風度. 不倦的追求真理, 熱烈的愛護國家, 積極的造福人類, 才是大學生的職志.
— 羅家倫 (1928)

對於機械設計的認知

設計是一種明確與具體的表達, 而且是在仔細思考、多方考量後所完成的表達, 表達具有六種形式, 包括口語、文字、2D、3D、數學與實體表達, 設計的結果可以讓執行者有所依循, 根據指示執行後, 可得預期之結果.

機械則是一種器物, 而且是由固體、流體與軟體元件精巧組合而成, 可互動運作, 達成特定功能之器物.

因此機械設計就是靈活運用六種表達, 仔細說明如何透過固體、流體與軟體元件之互動運作, 而能達成預定結果之明確與具體表達.

網際時代早已降臨

自 1990 年 HTMLWWW 伺服器首度出現在一台 NeXT 電腦上, 就已經揭示一個新世代的開始, 經過近 30 年的發展, 目前的網際環境已經能夠與單機操作系統上的應用程式緊密結合, 許多應用程式的開發, 透過網路與分散式版次管理系統, 幾乎隨時都在持續改進.

身為機械設計工程師, 必須明確了解在網際技術不斷推升的歷程, 過去厚重且無法分割的大型套件, 將逐漸被敏捷可攜的雲端應用所取代, Onshape 的開發團隊, 在 2012 成立時, 便已清楚看到此一趨勢, 使用者只要透過瀏覽器或 App 就能協同進行產品的機械設計與分析.

但是, 一套試圖集大成的雲端套件, 絕無法滿足未來網際時代新產品開發過程中的諸多需求, 必須由每一位機械設計工程師做起, 充分了解網路與電腦的應用範圍, 在既有基礎上, 有能力在網際環境中搭建屬於自己能夠掌控的流程, 開發合用的雲端程式.

KMOL 希望您能聰明表達、日日進步

既然我們認為機械設計是一種表達, 為了讓協同產品開發過程中的表達不至於混亂, 於是導入分散式版次管理的工具, 包括 Git 與 Fossil SCM, 為了能夠善用電腦與網路進行表達, 於是將靜態內容放在 Github Pages 或自行架設的 Nginx 伺服器中, 至於能夠即時更動的動態內容系統則採用雲端 Heroku 或自行架設的 uwsgi 網際環境中.

為了能夠快速讓產品開發者將概念轉化為數位模擬系統, KMOL 採用 Python 建構軟體雛形, 並設法利用 Cython 技術, 以 C++ 的執行速度進行工程分析.

為了讓成員有機會一窺各種開源工具的內部設計, KMOL 在 Windows 10 64 位元環境中以 Msys2 編譯 Solvespace、Fossil SCM、V-rep 以及 Range CAE 套件.

為了讓各學員能夠積極學習不浪費時間, KMOL 鼓勵各學員以 4+1 流程取得碩士.

NX12

NX 12 Help https://docs.plm.automation.siemens.com/tdoc/nx/12/nx_help Python related https://docs.plm.automation.siemens.com/tdoc/nx/...