用Office 365 的 Sharepoint 做了一個 Issue Track 清單 (拜託不要再用 Excel 管 Issue 然後寄來寄去了....)
過去在Sharepoint上都是用清單的 Alert 功能通知任何異動, 缺點是無法依據清單中的個別項目設定, 現在想試試 Power Automate
挑了一個 Power Automate 的範本: 在新增SharePoint清單項目時傳送自訂的電子郵件
結果找不到清單名稱....
用Office 365 的 Sharepoint 做了一個 Issue Track 清單 (拜託不要再用 Excel 管 Issue 然後寄來寄去了....)
過去在Sharepoint上都是用清單的 Alert 功能通知任何異動, 缺點是無法依據清單中的個別項目設定, 現在想試試 Power Automate
挑了一個 Power Automate 的範本: 在新增SharePoint清單項目時傳送自訂的電子郵件
結果找不到清單名稱....
這幾天遇到一個靈異現象, Chrome, Firefox 都沒問題, 但在 IE 11 裡, @media 媒體查詢的區段中設定的CSS樣式, 在網頁重新整理 / Refresh (ASP.NET 的 Post back) 後就會失效
試了大半天, 找到一個解法:
...就改用 Javascript 來執行媒體查詢吧.
從網路上抄了一段 code 來偵測瀏覽器是否為IE. 如果是IE的話, 就再加一段 Javascript 執行媒體查詢, 問題就這樣解決了. 效能還可以.
Javascript 執行媒體查詢的方式:
Package 的 DelayValidation 要設成 True.
如果Package的控制流程裡, 有用到容器 Container 的話, Container 也有這個屬性, 就一起設成 True 吧
從網路上找到的說法是, 如果不設定 DelayValidation 的話, SSIS Package 在執行前會先單獨做一次所謂的 Validation alidation 的程序, 而在這個程序中發現錯誤的話, 是不會觸發 onError 事件的
另外, 如果是要在 Visual Studio.Net (或 SSDT)裡面先測試的話, 記得要執行整個Package (畫面上方工具列的綠色箭頭 "開始"), 不要單獨 "執行容器"
我用的是 VS.Net 2017 版
奉老闆之命開始練 Power BI
只是想先練習一下, 所以我先打開 Power BI Desktop, 用 "取得資料" 連上SQL Server, 隨便找了一個View的欄位點一點, 然後點選 "發行"
同事已在某一架主機上, 架設好資料閘道 (Gateway) , 也已連到同一個SQL Server了, 但是發行後的報表, 報表的 Dataset 就是找不到對應的 Data Source, 一直叫我去新建一個...
....啊明明現成已建好的的就躺在那裡啊 !! 幹嘛叫我新建 ??
試了大半天才發現, 原來是主機名稱的問題
RPO: Recovery Point Objective, 可容許的最大資料損失量
RTO: Recovery Time Objective, 讓系統重新上線的時間
WRT: Work Recovery Time, 讓所有業務和作業, 回到事故發生前的水平 (恢復SLA), 所需的時間
MTD: Max Tolerable Downtime, 可容許的最長系統 Down Time
用自己的理解, 重畫了一張圖, 再搭配上面的翻譯說明, 感覺比較清楚一點
在報表上拉一個 TextBox, 然後裡面顯示參數
重點是, 如果參數是 Multivalue (允許多個值), 不能直接顯示, 要多加一個JOIN指令
例如 =JOIN(Parameters!pTaxType.Value, ",")
踩了2次雷, 筆記一下.
沒什麼水準的做法. 多半用在一些給公司內部少數同仁專用的工具程式(網頁)
年輕時還滿常用的. 今天要用時忽然想不起來了, 只好再記在這裡一次.
1) 先關閉網站的匿名存取, 只打開Windows驗證
然後在 Web.config 裡面, <system.web> 的區段中, 加入以下的設定
雖然每年都要做, 但是因為一年才做一次, 每次事到臨頭, 都要 Try & Errorr一番. 年紀大了心臟越來越小顆, 所以還是把步驟記在這裡
Step 1: 到站台底下 (不要選 Default Web Site) 選 IP位址限制
step 2: 選 "新增允許項目". IP 就先打 127.0.0.1. 然後 "確定".
Race condition是指,攻擊者(駭客)改變原來程序執行的正常順序,造成異常的結果。
以我有限的程度, 所能想到的例子是,XX影城網路訂票的程序中,可能有一小段是按照以下的順序進行:
(1)檢查儲值卡中的餘額是否足夠 (2)按照訂票數量扣除儲值卡裡的錢(3)訂票成功。
如果駭客找到方法讓步驟(2)在步驟(1)之前先執行,變成二話不說先把錢扣掉,然後才去檢查剩下的餘額夠不夠支付這次訂的電影票,很可能會在檢查餘额時因為餘額不足,造成訂票失敗。
以上歡迎指正.
新版的FpgFlow已預設套用Bootstrap了, 直接拿來用在表單, 應該也只是剛好
只是Modal平時是隱藏顯示的狀態, 需要使用者按鈕觸發
但是在FpgFlow的設計模式中, Modal仍是隱藏的狀態, 就無法去設定放在Modal裡面的控制項的屬性了
解法: 在Code Behind 的 CS 程式碼中, Page Load 的事件裡, 當 base.flowDocId == null 時, 代表目前正在設計模式, 可以用以下的方式 執行 Javascript, 解除Modal的隱藏.
if (base.flowDocId == null) // Design mode 表單設計模式
找個地方記一下, 主要目的其實只是要加深印象
密碼學
Access Control
https://www.taftw.org.tw/wSite/ct?xItem=2370&ctNode=683
今天去外面上課時, 老師特別提到的. 感覺好像是一件很大的事, 但其實沒有很懂, 反正先記下來
其中
台灣檢驗科技股份有限公司 = SGS
香港商英國標準協會太平洋有限公司台灣分公司 = BSI
如果 Regular Expression 的結尾加了 "g", 那麼每次執行 test 之後, RegExp 會記住前一次執行的結尾位置.
下一次執行 test 時, 不會再從字串的第1個字元, 而是從上述的結尾位置開始查找
結果就會很靈異.
解法:
1) 移除 Regular Expression 的結尾 g
var regCommaSpace = new RegExp(/(\s*)(,*)/g);
var sAmt = " - 123, 45 6 ";
sAmt = sAmt.replace(regCommaSpace ,"");
沒水準的筆記
var re = new RegExp(/,*/g);
var a = "-12,345.2";
a = a.replace(re, ""); // 移除千位逗號
var reDecimalChecker = new RegExp(/^(-?)(\d*\.)?\d+$/g);
reDecimalChecker.test(a);