2020-09-06

Synology NAS 作為 AD Server

我工作單位自 2005 年開始使用 Windows Server 2003 管理微軟網域(Windows Domain)和網域帳號,供內部網路權限管理,包括網路列印、管理設備使用權限、以及網路資料夾。架設初期,各有一部 PDC 和 SDC 主機,也自行管理 DNS,還算小有規模。然而時光荏苒,由於正港網管黑手只有我一人、協助網管的學生年年交替且經驗不足、加上沒有資金升級新版 Windows Server(校方已經停止提供 Window Server 授權),到現在 2020 年了,本單位仍仰賴古董級 Windows Server 2003 管理網域,曾歷經數次病毒入侵、主機或資料毀損導致系統重建,撐得很辛苦。

八月初(2020.08)的一次斷電,讓僅剩的老 PDC 伺服器停擺。猜測是某任管理員沒有將伺服器接上UPS而是接市電,經過多次無預警斷電後通電的瞬間電流,導致電路板上的電容爆漿而死機,更慘的是網域設定完全沒有備份、把硬碟拔到其他同型主機也沒用,一個慘字。只好正式宣告本單位 Windows Server 2003 壽終正寢、網域得再度重建。緊急將列印伺服器中帳戶餘額資料備份後,決定邁向 NAS as AD Server 時代。

然後,兩天內就完成重建、恢復運作了,如果了解目錄架構和角色的話 AD Directory Server 設定起來蠻快的。

其實自 2016 年起,Synology DSM (DiskStation Manager) 便支援 SMB/CIFS 協定、可以當作 AD Server,也就是可以名正言順的用 NAS 取代 Windows Server!由於缺乏好的 Use Case 當設定參考,一直沒有下定決心轉換。幸好2020年初看到官方文件、以及網路上一些文章和 YouTube 教學,仔細研究設定和使用情境後,終於確定以 Synology NAS 當作 AD Server 的實用性。

寫這篇文章時,Synology Directory Server (DSM 6.2) 有幾項限制:

  1. 只支援單一網域:這倒不成問題。
  2. 只支援單一網域控制站:也就是 NAS 只能當 PDC(AD主要網域控制站),還無法當 SDC(次要網域控制站)。要等 2020 年底 DSM 7 推出才會支援 SDC。以 NAS 的穩定度,應該撐到 DSM 7 是毫無問題的。為確保網域控制站可在故障後盡快復原,官方建議使用 Synology High Availability 功能,也就是有另一台同款 NAS 作為備援伺服器。但是,這個功能必須在設定 AD Directory Server 之前就開啟才有用喔。
  3. 會自動開啟 SMB 簽章(SMB Signing),這會拖慢檔案傳輸的速度。如果介意的話,可以手動關閉伺服器端的簽章,當然關閉後也降低安全性,看倌請自負安全風險。用戶端也可以關掉:
    • macOS:手動增加一個設定檔 /etc/nsmb.conf,內容為:
      [default]
      signing_required=no
此外,Synology Directory Server 的介面僅提供基本管理功能,包括 OUs (Organization Unit), Users, Groups, Computers, Domain Controllers,然後就沒了。如果要用群組原則(Group Policy),必須從一台已加入網域的電腦上執行 RSAT(Windows Remote Server Administration Tools 遠端伺服器管理工具),可參考這篇官方說明

另一個網域上常見的 AD 問題是用戶漫遊設定檔(Roaming Profiles),為了避免拖慢使用者在電腦登入的速度,我傾向關閉漫遊設定檔,只用本機設定檔。關閉方法是:

  1. 在 RSAT 套件中,開啟群組原則管理套件(Group Policy Management)。
  2. 找到原則路徑 Computer Configuration\Administrative Templates\System\User Profiles。
  3. 勾選以下兩個選項 “Only allow local user profiles” 和 “Prevent Roaming Profile Changes from propagating to the server”,即可停用漫遊設定檔。

參考網路資源:

未完待續~

2020-08-30

Mac影片剪輯工作格式盡可能用ProRes


一般在 MacOS 中剪輯影片多以 Final Cut Pro、Premiere Pro、After Effect 三種平台進行。最近我和兒子在 Premiere Pro 剪輯影片時偶而因為影片素材格式問題而造成意外當機,在網路搜尋解方後,普遍看到的建議是盡量採用蘋果的 ProRes 格式作為工作格式。

Adobe 員工 kevin_monahan 的建議如下:

  • 匯入素材影片時,將其轉碼為 ProRes LT(適合效能中階以上的電腦)或 ProRes Proxy(適合效能較低或老舊的電腦)。
  • 在 Sequence Settings 中,將預覽編碼格式(render preview codec)改為 ProRes LT。
  • 匯出影片時,使用 smart rendering。基本上就是將整段時間軸用 ProRes LT 編碼計算,也用 ProRes LT 格式輸出(要打開 Using Preview 選項)。之後若需要 H.264 格式,再另行轉檔。
在這篇關於 Premiere Pro 2020 預覽與當機問題的討論串中,davidarbor 提到 Premiere Pro 在特定工作中使用 Proxy 的時機,值得參考。

關於 ProRes 編碼格式的中文介紹,可以參考這篇精研事務所的文章「6種 ProRes 格式,你應該選哪種呢?」或者詳讀官方的 Apple ProRes 白皮書。簡單來說,一般到半專業用途的影片剪輯用 ProRes Proxy 和 ProRes LT 已經足夠,以 Full HD (1920 x 1080) 29.97 fps 來說,兩種編碼格式分別是每秒鐘 45Mb 和 102 Mb 位元率。專業剪輯才需要考慮 ProRes 422, ProRes HQ, ProRes 444, ProRes 444 XQ 等格式,資料傳輸量當然就十分驚人。

Apple 近期推出 ProRes RAW 還沒有時間仔細了解,大家有空可以看蘋果官方文件或杰克森林的「為什麼ProRes RAW很強大?」自行研究。

2018-03-23

Maker Movement 紀錄片


在「智慧生活與創新設計」課堂中,我提到台灣年輕團隊Muris繆思媒體所製作拍攝的 Maker 紀錄片《自造世代》,對自造者運動做了詳盡而通盤的報導與追蹤。以下提供相關連結(有數位下載版可購買):
自造者運動並不是近年才發起的新風潮,而是一種回歸人類先天能力的宣言,找回我們動手解決問題、打造事物的原動力和能力。其他國家或地區相關的資訊有:

HOME MADE -- 丹麥自造者運動(紀錄片)

Maker Faire Bay Area 全球最大的灣區自造者嘉年華活動
Make Magazine 自造者雜誌(有眾多出版品)

2018-03-19

Processing入門與自學指引


Processing是專為互動視覺、創意應用所設計的程式語言,有易於上手的編輯環境、多元函式庫(外掛功能)、豐富的學習資源。語言是基於 Java,但語法結構更為簡單。我們直接用範例來看:

size(500, 500);
line(0, 0, 500, 500);
rect(0, 450, 50, 50);
rect(450, 0, 50, 50);


意思是定義一個 500x500 的畫布,並劃一條從 (0, 0) 到 (500, 500) 的對角線,並在右上角、左下角分別畫 50x50 的正方形。若程式中沒有宣告顏色,預設的顏色是:線條 --> 黑色、填滿 --> 白色、底色 --> 淺灰。可用 fill() 改填滿顏色,用 stroke() 改線條或框線顏色。顏色要先指定再繪圖才有作用。

size(500, 500);
stroke(255, 0, 0); //指定紅色線條。
line(0, 0, 500, 500);
stroke(255, 255, 0); //指定黃色線條。
fill(0, 255, 0); //指定填滿綠色。
rect(0, 450, 50, 50);
fill(0, 0, 255); //指定填滿藍色。
rect(450, 0, 50, 50);


顏色格式有好幾種,較常用的是 R, G, B 三原色,數值範圍分別是 0...255,黑色是 (0, 0, 0),白色是 (255, 255, 255),黃色是 (255, 255, 0)。完整格式可參考手冊。

如果要重複動作,除了將指令複製貼上之外,還有比較聰明的方法:迴圈。若要從上而下繪製間隔為 10 的水平線,可以這麼寫:

size(500, 500);
for (int i = 0; i < 500; i = i + 10) {
  line(0, i, 500, i);
}


迴圈中的變數 i 稱為索引變數或控制變數,用來控制迴圈的執行次數和判斷結束與否。上述 for 迴圈的宣告格式是 (初始敘述; 繼續條件; 繼續前動作),可以這麼解讀:迴圈開始前,定義變數 i 並歸零,當 i 小於 500 時繼續迴圈,每次進入迴圈之前 i 累加 10。

然而為了要繪製動態圖形或進行互動,光靠上面的簡單結構很難做到,於是便需要一個類似動畫的基本架構:前置宣告、舞台設定、重複繪製(像是動畫師畫賽璐珞片一樣)。若將上面例子放到正規架構中,就會是這樣:

// 舞台設定,只會在draw()之前執行一次。
void setup() {
  size(500, 500);
}

// 重複繪圖,不斷自動重複執行。
void draw() {
  for (int i = 0; i < 500; i = i + 10) {
    strokeWeight(i/50); //額外加上的,根據 i 值改變筆劃粗細。
    line(0, i, 500, i);
  }
}

這段程式碼在邏輯上是正確的,不過實際上卻在做虛工,因為 draw() 重畫的內容其實都一樣,沒有重複的必要,除非每次執行 draw() 都會有些許的變更。

至於互動要怎麼做呢?我們先用最最最簡單的互動,將滑鼠的即時座標 (mouseX, mouseY) 融入程式中。例如,在滑鼠位置畫一個任意顏色的方塊。

void setup() {
  size(500, 500);
  rectMode(CENTER); //改變矩形繪圖方式,以矩形中心為準。
}

void draw() {
  fill(random(255), random(255), random(255)); //運用亂數函數產生任意顏色。
  rect(mouseX, mouseY, 50, 50);
}


好了,以上不算正式的程式設計簡介,太簡略了點,該是時候去上自嗨哥 Dan 的課了。Dan Shiffman 是既熱情又非常厲害的 Processing 專家,在 YouTube 上有一系列的入門課程,由簡入繁、設計得非常好,每段課程都很短,適合一面看一面練習。


建議按章節來看,應該可以一路衝到第5章 Conditions 了,歡迎大家在 Dan 哥的加持下繼續往前衝。學習過程若發生問題或需要釋疑,歡迎隨時透過臉書訊息、email 提出問題。

當然,Processing 官網也有豐富的學習資源,包括精采案例、學習範例、自學課程、書籍、網路連結等,。

再提醒一次,這次練習只需要基本幾何繪圖函數、基本條件式或迴圈、以及滑鼠座標 (mouseX, mouseY) 來創作,當然願意自我挑戰的同學請不要客氣。

教材一:Processing - Basics


2018-03-16

Processing臉部表情辨識

Kyle McDonald 所寫的 FaceOSC,這是架構在 OpenFrameworks 的一個小工具,將臉部表情當作 OSC 控制器,這邊有一篇 DigiLog 的介紹

Smile detection in Processing by Bryan Chung 鍾緯正.

2018-03-15

Tools and Researches for Islamic Arts


以下是一些與伊斯蘭藝術、圖案相關的數位工具、文獻。

Digital Tools

Web sites
Papers

2018-03-12

Tinkercad 入門

對 3D 建模和 3D 列印新手來說,Tinkercad 是易學易用的入門建模工具。底下是一些教學影片的匯集。
If you are new to 3D modeling or 3D printing, Tinkercad would be your best entry level 3D modeler. Here are some of the tutorials.
  • Tinkercad 3D 建模軟體按部就班入門(How to: Use Tinkercad 3D Design Software 101)
  • 零基礎初學者 Tinkercad 教學(Getting Started in Tinkercad: A Tutorial for Complete Beginners)
  • 建一個相機雲台底座,超實用!(兩段影片)

  • 用 Tinkercad 做齒輪!

取得分享連結

作品預設為不公開(private),要取得分享連結,首先打開作品的設定視窗,將分享狀態改為公開(public)。



然後在作品視窗中,就可以看到分享網址了。

挑戰難度!

雖說 Tinkercad 主要是給 3D 建模初學者或興趣玩家,而且都以基本幾何形為基礎,難道 Tinkercad 不能做自由曲面模型嗎?
Tinkercad is for 3D beginners and hobbyists. But can we model complex objects in Tinkercad?
  • 製作有機形體:用曲線和曲面工具製作龍蝦(Tinkercad Tutorial - Organic Shapes: Jeff shows how to model a lobster by using some flexible shape generators.)

還想學更多 Tinerkcad 基礎或進階建模技巧的朋友,請上 YouTube 搜尋 Tinkercad 即可找到一堆教學和示範。不過,如果複雜度較高,建議還是改用進階工具,例如 SketchUp Free 或 SketchUp Make。

Synology NAS 作為 AD Server