前言

bootcamp failed
明明帳號就有管理員權限,跳出這個訊息時真的是頗傻眼。
Google都找不太到解法,轉成簡體字後才找到…
一開始找到的解法也很妙,是新建一個非管理員權限來啟動BOOTCAMP控制台,就可以正常。這…根本不會想到要繞這種彎路啊!而且這樣操作也太痛苦!所幸最後有大神提供完美解決方法

解決方法

  1. 阿榮福利味/Resource Hacker下載Resource Hacker
  2. C:\Windows\System32\AppleControlPanel.exe,把檔案複製到桌面
  3. 用剛剛下載的Resource Hacker打開複製出來的AppleControlPanel.exe
  4. 24/1/1033的路徑下,對1033右鍵>刪除資源
    resourceHacker
  5. 點**檔案>另存新檔>AppleControlPanel2.exe**
    到這一步直接執行AppleControlPanel2.exe就可以用了,但為了以後方便在常駐列可以直接執行,繼續後面步驟
  6. 開啟工作管理員,將BOOTCAMP Manager強制結束
  7. 將檔案重新命名為AppleControlPanel.exe,並放回C:\Windows\System32\底下並取代掉
  8. C:\Program Files\bootcamp下執行Bootcamp控制台(或直接重開機也可以),正常使用!

參考資料

彻底解决:Boot Camp 尝试访问启动磁盘设置时出错 的问题

底下回應是說WIN 7 x64不行。但我的MacBook Pro是2015年的,不支援WIN7。所以我是直接灌WIN 10 x64,測試可行

若不清楚手上的MacBook可安裝的windows版本,可參考以下官方資料
APPLE官網/Windows 7相容性表格
APPLE官網/Windows 10相容性表格

大部份的使用者選購的MacBook,多半落在256gb。畢竟再往上,那價錢更是高不可攀。原本的空間就不太夠用,偶爾又還是得用上Windows,有辦法裝在隨身碟上嗎??

閱讀全文 »

SQL在欄位設定中,儲存文字的char就分成這四種:

  • nvarchar
  • varchar
  • nchar
  • char

第一時間真的是不明白差距在哪!但仔細看其實還是有其規律性

char前的參數 說明
var 可變動。須額外花2bytes來儲存地址
n 萬國碼。每一字會花2倍的空間

實際儲存空間

char 長度
char(n) n Bytes
varchar(n) (n + 2) Bytes ,其中2Bytes用來記錄地址
nchar(n) (2 × n) Bytes
nvarchar(n) (2 × n + 2) Bytes

使用情境

從效能來看,因char、nchar不必再確認長度,速度較快些
佔據空間上,n則會花費2倍空間
實務上,還是得根據需求選擇怎樣的格式較佳!

簡單茲分如下

需求 參數
只有英數字、長度固定 char
只有英數字、長度不定 varchar
會含英數以外的字元、長度固定 nchar
會含英數以外的字元、長度不定 nvarchar

Visual Studio Code是一套微軟主導且open-source的開發工具,不但可以安裝許多插件,原生又支援GIT、DEBUGGER模式。而且IDE也相當美觀!其中有幾個快速鍵,個人推薦值得學下來!不但可以大幅提升開發時的流暢度,也可以減少按CTRL + C / CTRL + V 的次數!

閱讀全文 »

JavaScript在一般的陣列中,可以直接使用filter、map來遍歷元素並搜尋或取得資料
但在object,就無法使用這些方便的函式了!
尤其當資料內容又是以物件型式儲存在陣列裡面
兩個東西結合在一起的時候真的是會寫到一團亂不知道自己在寫什麼東西XD
花了不少時間總算寫了個應該….還算是精簡的寫法QQ

需求:在一個搜尋框輸入關鍵字,可搜尋表格內的每一欄位,並即時呈現結果

[> DEMO <](https://codepen.io/windclara/pen/MraYRZ?editors=1010)

由於我來源資料是儲存在nedb裡面(註:nedb為一輕量化的單機版mongoDB,可視為nosql版的sqlite)

nedb中每一筆資料是一個物件,查詢出來後的所有結果回傳成一組陣列
就會得到如下的資料結構:

dbData = [
 {id:0001,name:'王小明',phone:0912345678},
 {id:0002,name:'劉得滑',phone:0987654321},
 {id:0003,name:'周潤花',phone:0978123456},
 {id:0004,name:'林志零',phone:0955111222}];

搜尋功能的程式碼:

function search(searchValue){
    let searched = dbData.map(obj => {
        if ( Object.keys(obj).some( property => obj[property].toString().indexOf(searchValue) != -1 ) )
          return obj;
      });
      return searched.filter(obj => obj != undefined);
}
//demo網頁我使用vue,所以demo網頁裡的寫法會略有不同
//為方便您使用,文中以function呈現

說明:

  1. 用陣列提供的map函式,遍歷出每筆資料
  2. 由於object無map、filter函式,使用Object.keys取得object裡的每個property以遍歷每一object裡的內容。而Object提供some函式,只要其中一筆內容符合則回傳true
  3. 接著使用obj[property] 取得該物件屬性內的值。會得到:0001,王小明,0912345678,0002,劉得滑….等每一property裡的值。
  4. 將資料內容轉換成字串,使用indexOf判斷是否符合,若符合則回傳整個物件
  5. 將searchValue console.log出來的話,會發現是一陣列包含符合條件的物件,不符合條件的則回傳undefined。得到內容長這樣(以搜尋王小明為例)
    [{id:0001,name:'王小明',phone:0912345678},undefined,undefined,undefined]
    //資料內容總長有幾筆不合條件,就會有幾個undefined
  6. 最後在用filter 過濾掉undefined,就可以得到我們想要的結果!

參考資料

JavaScript取出陣列重複/不重複值的方法
Quickly filter an object by keys

一、在組織組態→集線傳輸→新增傳輸規則

設定如下圖

上圖中:

  1. 是「條件」頁面的「來自人員」,或可選擇「來自通訊清單的成員」,即限制一群成員
  2. 是「條件」頁面的「傳送給組織內部或外部的使用者」,選擇「在組織外」
  3. 是下一步「動作」條件設定中的「將拒絕訊息傳送給有增強狀態碼的寄件者」

可設定錯誤訊息&錯誤代碼(皆必填)。錯誤代碼填上任一代碼即可。

二、設定完畢存檔後按一下F5重新整理,使傳輸規則生效。

三、測試發送郵件給外部收件者:

收到系統阻檔發送的訊息,並顯示先前設定之錯誤訊息&代碼。如下圖所示:

打開終端機,輸入下列指令

sudo spctl --master-disable

系統偏好設定 > 安全性與隱私權
macDisappear