星期六, 9月 28, 2024
星期四, 9月 26, 2024
[Shopify] hCaptcha
被告知對外聯絡信箱最近垃圾信件增加不少才去了解,發現 Shopify 垃圾郵件防護沒有啟用,還很意外注意到垃圾郵件防護是使用 hCaptcha,直覺是 Google reCaptcha 才是,在 Shopify 官方 changelog 有找到這兩篇文章
官方文件 - 使用 Google reCAPTCHA 保護您的網路商店 上還是說是使用 Google reCaptcha
網路商店 => 偏好設定 => 垃圾郵件防護,畫面上是 hCaptcha
Shopify 網站右下角有出現 hCaptcha 圖示
星期一, 9月 23, 2024
[CCNA] 預設路由
當設定靜態路由都不通、預設路由就是最後的 routing 選擇或是不論網段一律往特定路由跑時,可以以預設路由來取代一個一個網段設定
簡易網路拓樸圖
使用 ip route connected 確認目前連線
建立預設路由,要透過它連往 192.168.30.0 網段
在 PC0 上 ping Laptop0 確認預設路由是正常的
使用 ip route connected 確認目前連線
建立預設路由,要透過它連往 192.168.30.0 網段
在 PC0 上 ping Laptop0 確認預設路由是正常的
星期日, 9月 22, 2024
[SSRS] TextDecoration
要在 SSRS Textbox 內設定文字下斜線,該設定沒有 GUI 畫面可以設定,必須在屬性視窗內選擇,分別為 Default、None、Underline 、Overline、LineThrough,Underline 和 LineThrough 可以猜到文字效果,但 Overline 就完全沒有不知道
Underline 、Overline、LineThrough 文字效果,Overline 查資料應該是文字上橫線,但實際設定沒有效果出來
在該官方文章 - TextBox.TextDecorations Property 內的 Overline 效果,沒有找到 SSRS 專屬文件說明
開發環境是 VS2022 WinForm 搭配 ReportViewer
星期六, 9月 21, 2024
[SSRS] TextBox 運算式內換行
SSRS TextBox 純文字輸入換行,基本上是很直覺的操作,但常常是運算式內同時有固定文字、參數和資料集欄位等混在一起呈現內容,該情況要換行的話,要使用 VB.NET 換行符號 - vbcrlf
運算式內設定
星期五, 9月 20, 2024
[CCNA] 靜態路由 - 優先權
延續 [CCNA] 靜態路由 - 負載平衡 筆記,在負載平衡練習時設定靜態路由並沒有指定 AD/Cost,預設為 [1/0] 如下圖
Router1 設定方式是一樣的,就不紀錄囉
接下來會修改 192.168.100.2 的 Administrator Distance (AD) 來達到路由備援機制,AD 越小表示優先權越大,所以預設會是以 192.168.20.2 為主要線路,當 192.168.20.2 發生異常時,才會切至 192.168.100.2
CLI 內設定 AD
重建 AD 為 3 的 192.168.100.2 靜態路由,先使用 no ip route 刪除後,再使用 ip route 並指定 AD (下圖紅線),設定完成後查詢只會看見 [1/0] 192.168.20.2 靜態路由而已 (下圖藍框),當切換至 [3/0] 192.168.100.2 時,查詢才會出現 192.168.100.2 靜態路由
使用 Tracert 進行測試
從 1921.68.10.2 使用 tracert 192.168.30.2,第一次可以看見是從 192.168.20.2 過去,故意把網卡關閉後,再進行 tracert 就可以看見切至 192.168.100.2 過去
再次查詢靜態路由,就會出現 [3/0] 192.168.100.2Router1 設定方式是一樣的,就不紀錄囉
- 參考資料
- PT-7- 多條連線實作容錯、負載平衡與優先
- 網路規劃與管理實務 - 5.11-路由協定編號 (AD)、5.12-路由協定成本 (Cost)
- Routing-Decision 路由判斷
- (Cisco Packet Tracer)路由实验(配置静态、默认路由与跟踪、配置浮动路由)
星期四, 9月 19, 2024
[CCNA] 靜態路由 - 負載平衡
延續 [CCNA] 靜態路由 筆記,要在兩個 route 之間再拉一條專線來當成備援,備援線路以 192.168.100.0
在兩個 route 上設定第二條靜態路由設定後,從 CLI 上下指令確認,設定 IP 和靜態路由就不多紀錄
實際進行測試,就直接網卡關掉,看 ping 是否會因此中斷
星期六, 9月 14, 2024
[C#] Microsoft.Office.Interop.Excel
閱讀這兩篇官方文章的筆記
Range.Select()
nuget 上安裝 Microsoft.Office.Interop.Excel
文章內還是加入 Excel dll 作法,現在可以直接在 nuget 上安裝囉
C# Code
儲存格顏色
以前在 VFP 是透過 ColorIndex 來進行設定,詳見 [VFP] Automation 應用 - 改變 Excel 儲存格顏色 紀錄,官方文章是使用 Color 來進行設定,但使用顏色十進制來塞值,一整個不直覺
C# Code
using System;
using System.Collections.Generic;
using Excel = Microsoft.Office.Interop.Excel;
namespace Automation
{
internal class Program
{
static void Main(string[] args)
{
var bankAccounts = new List<Account>
{
new Account{ID = 345,Balance = 541.27m},
// 故意把數字變長,超過欄位寬度,AutoFit() 效果才能感受的到
new Account{ID = 999999999,Balance = -127.44m}
};
// 透過 delegate 來塞值並變化背景顏色
DisplayInExcel(bankAccounts, (account, cell) =>
{
cell.Value = account.ID;
cell.Offset[0, 1].Value = account.Balance;
if (account.Balance < 0)
{
cell.Interior.Color = Color.Red;
cell.Offset[0, 1].Interior.Color = 255;
}
});
}
/// <summary>
/// 顯示 Excel
/// </summary>
/// <param name="accounts">資料來源</param>
/// <param name="DisplayFunc">透過 Delegate 讓主程式可以自訂定義 Excel 內的商業邏輯</param>
static void DisplayInExcel(
IEnumerable<Account> accounts,
Action<Account, Excel.Range> DisplayFunc)
{
var excelApp = new Excel.Application();
excelApp.Workbooks.Add();
excelApp.Visible = true;
excelApp.Range["A1"].Value = "ID";
excelApp.Range["B1"].Value = "Balance";
// 設定下述迴圈起點
excelApp.Range["A2"].Select();
foreach (var ac in accounts)
{
DisplayFunc(ac, excelApp.ActiveCell);
excelApp.ActiveCell.Offset[1, 0].Select();
}
// 把 A1:B3 這範圍內容複製至剪貼簿
excelApp.Range["A1:B3"].Copy();
// 調整資料行寬度來完全顯示內容。
excelApp.Columns[1].AutoFit();
excelApp.Columns[2].AutoFit();
}
}
public class Account
{
public int ID { get; set; }
public decimal Balance { get; set; }
}
}
儲存格顏色
以前在 VFP 是透過 ColorIndex 來進行設定,詳見 [VFP] Automation 應用 - 改變 Excel 儲存格顏色 紀錄,官方文章是使用 Color 來進行設定,但使用顏色十進制來塞值,一整個不直覺
cell.Interior.Color = Color.Red;
cell.Offset[0, 1].Interior.Color = 255;
官方文章都是透過 Range.Select() 來進入指定 cell,但一直覺得不是該使用 Range.Activate();,在該篇官方文章 Working with the Active Cell 有說明
複製至剪貼簿
To select a range of cells, use the Select method. To make a single cell the active cell, use the Activate method.
excelApp.Range["A1:B3"].Copy();
執行後在 txt 上直接貼上就可以看見啦
調整資料行寬度來完全顯示內容
excelApp.Columns[1].AutoFit();
星期日, 9月 08, 2024
[EF] 在 edmx 內尋找 Entity
DbContext 內越來越多的 Entity 後,在圖表內找到特定 Entity 變成是一件耗時的事情,好在可以透過 edmx 模型瀏覽器內篩選或搜尋
以 AdventureWork edmx 為例,只截部分而已
在 edmx 模型瀏覽器內,Entity 依據名稱排序,上方也有篩選功能可以使用
星期一, 9月 02, 2024
[CCNA] ping
延續 [CCNA] 靜態路由,在 Router 上都有設定兩張網卡,那 ping 的時候能否指定從特定網卡 (source) 發出,該筆記是從 192.168.10.1 ping 到 192.168.20.2,如下圖
Packet Tracer 上方有自訂 ping 功能 - Complex PDU (下圖綠色圓框 1),綠色圓框 2 則是可以選擇source,預設是勾選 Auto Select Port 狀態
Packet Tracer 上方有自訂 ping 功能 - Complex PDU (下圖綠色圓框 1),綠色圓框 2 則是可以選擇source,預設是勾選 Auto Select Port 狀態
星期日, 9月 01, 2024
[CCNA] 靜態路由
根據網路資源
來練習在 Router 上設定靜態路由,下圖簡易網路拓樸圖
Router 和連接線
Router 2911 必須先安裝 HWIC-2T 介面,彼此才能使用 Serial Port 搭配 Serial DCE 或 Serial DTE 來相互連線
- Step1:關閉電源
- Step2:把 HWIC-2T 安裝進去
- Step3:開啟電源
IP 設定部分不特別紀錄,設定完成後透過 show ip interface brief 來確認或是在網路拓樸上點選 Router 1 圖示也有相關資訊
在 Router0 上使用 GUI 設定靜態路由
在 Router1 上使用 CLI 設定靜態路由
使用 ip route 語法來設定靜態路由,當設定完成後,要在 Global Configuration 層級呼叫 Privileged 層級語法,可以在前面加個 do 就行,語法如下
do show ip route
- 參考資料
- CCNA 實驗三 設定靜態路由