[C#] 不用 Access Token如何獲取 Facebook UID

2023-12-31

最近接到比較奇怪的需求,必須要撈取臉書一些東西 ,今天這篇文章分享一下

如何抓到臉書的每一個的 facebook uid 但是不用用到 access token 


[C#] 不使用 access_token為前提取得臉書粉絲專頁的按讚數

2023-12-30

最近都接到比較奇怪的需求,對方要知道,粉絲團的按讚數,因為要 access_token

要取得該粉絲團的 access_token 就比較麻煩了,所以唯一能解決的方法就是爬蟲了



[C#] 比特幣冒險:掌握BRC-20標準及Witness資料的抽取技巧

2023-12-22

最近幣圈風風火火關於比特幣銘文(Ordinals),這時候要說到 BRC-20,我相信前幾年如果你有聽過 NFT 或是乙太幣,應該對這名詞覺得有點熟悉但是又陌生

BRC-20 是一個實驗性的比特幣同質化代幣標準,由推特用戶 @domodata 於 2023 年 3 月 8 日基於 Ordinal 協議創建它類似於以太坊的 ERC20 標準,

規定了比特幣上發行代幣的名稱、發行量、轉帳等功能BRC-20 代幣可以通過 Ordinal 協議在比特幣網路上鑄造和轉移

如果您對 BRC-20 代幣等虛擬貨幣感興趣可以看看下面這影片,說的是淺顯易懂


[C#] String 中 Environment.NewLine 關於 \r\n 的判斷

2023-11-29

最近遇到一個奇妙的問題紀錄一下,因為公司的專案慢慢地從 .Net Framework 轉成  .NET 6-8 

遇到一個很小很小的問題,就是在 string 中的 \r\n 的判斷在 .Net Framewok 和 .Net Core 3.1 以上版本解讀是不一樣的



[C#] 簡單測試 ThreadStatic ,一個可以瞬間了解的範例

2023-11-11

最近在玩一些東西,看到一個有趣的東西,已經出來很久了,但是最近才看到覺得很有趣

但是看了一下官方範例有點看不太懂,之後自己測試一下才發現原來是這樣設計使用的

就是一個 Attribute 叫做 [ThreadStatic]



[C#] 取代字串中可能是網址的部分取代成超連結

2023-11-01

今天要聊一個小東西,但是花了我一點時間 Regex 是真的不太熟,這需求很簡單,就是把一個字串,裡面可能是網址的部分,替換成超連結



[C#] Language Detector - 免費語言偵測方案分享,使用兩個套件混搭

2023-10-23

語言偵測,最近要用到,但是因為不是一個很重要的功能,但是花了我一些時間

而且我不覺得是非常完美的解決方案,但是研究都研究了而且堪用,就記錄一下吧


[C#] 簡單計算 RSI 相對強弱指數

2023-10-20

最近再研究 BTC 的一些指數,有一個東西叫做 RSI (相對強弱指數 是一種技術分析指標,用於即時價格波動的速度和幅度。) 

因為需要這指數判斷一些東西,後來上網查一下,似乎不是很困難,所以筆記一下

給之後有需要用到的人..


[Javascript] 製作 div 的反差色,解決上面文字顏色的問題

2023-10-17

最近在處理一些前端的東西,遇到一個問題,就是假設設計在一個 <div> 有 background-image 是可以讓客戶更換的

但是,在這 <div>  上面有文字,文字有顏色,如果可以設定一張純白,純嘿,或是花花綠綠的圖該怎麼辦 ?



[Google 試算表] 取得 Bitfinex 上面的 數字貨幣價格

2023-10-05

最近在看一些資料,順便回答一下朋友問的問題,他主要是透過 Google Sheet 來管理他的虛擬貨幣資產

但是他需要知道價格,我直覺地回他使用  GOOGLEFINANCE 這個 function ,但是他要抓的那個虛擬貨幣代碼是 GOOGLEFINANCE 

沒有提供的,這時候該怎麼辦,只好自己寫一個 函式..



[Javascript] 網路離線依然可以顯示資料 Service Worker 簡單實作

2023-08-19

今天測試一個東西,解開我很久的疑惑,為何有些網站在我沒有網路的情況下,依然可以顯示一些資訊

有的是顯示你現在正在離線,或是有的依然變成一個資訊孤島依然還是可以查資料,正常狀況下不是應該都會顯示



[C#] Console.WriteLine 出現?? ,亂碼顯示問題

2023-08-17

簡單記錄一個很白癡的事情,測試程式常常使用 Console.WriteLine 但是竟然

會出現 ?? ,後來我才發現,原來預設的不是 UTF8 就會導致這樣

我測試文字

当麻测试测试123简体中文とうま

輸出後: 


[Trick] 指定不同程式使用不同網路(WIFI , LAN )

2023-08-15

最近算是找到一個方法解決一個問題,之前沒有認真去找過,今天找一下測試一下才發現可以用,主要目的在於

我電腦有接線的網路,也有 WIFI,兩個 對外 IP 不一樣,因為一些操作我有的應用程式需要用到 A 網路,有的應用程式用到 B 網路

這就很麻煩了,因為通常他都會預設使用有線網路,我就在想我有沒有辦法找到 某個應用程式指定使用 WIFI 網路

網路上找到一個關鍵字  ForceBindIP



[Javascript] 關於一個 select 的 multiple 的處理

2023-07-06

最近在處理一項需求時,遇到了一個讓我感到驚訝的情況,但仔細思考後發現其實只是我自己的誤解。這也是一個比較少用到的情境。

在HTML規範中,select元素有一個multiple 的屬性,詳細可參考這裡。儘管多選通常可以使用input checkbox來實現,

但在前端處理上會稍嫌繁瑣。因此,有時我會建議客戶使用select的multiple="multiple"屬性,特別是在手機上,操作體驗相對更為舒適。



[Javascript] 使用 Keydown 事件實現輸入框值的同步支持負數小數點

2023-07-05


主要遇到,客戶希望再輸入一個 價格的時候,其他欄位的價格可以預先填寫好,如果他修改過價格後就不能再被更改

這需求感覺蠻常碰到的,但是客戶要求很直觀,等於我就是只能從 Keydown 事件下手,今天,我們將探討如何使用 JavaScript 中的 Keydown 事件來實現這樣的需求



[Javascript] 實做鍵盤方向鍵的左右鍵連續點擊

2023-07-04


最近我遇到業主一個需求,需要在網頁上實現按下鍵盤方向鍵左鍵和右鍵時執行相應的動作。在尋找相應的解決方案時,

發現 Javascript 並沒有提供直接的方法,於是我嘗試使用一種古老的方法,即利用時間差來達到按兩次快速點擊的效果。



[C#] 使用 C# 做一個假裝自己是 RDP Server

2023-06-30


看到一段有趣的  code ,就是有網路上的大大用 python 寫了一個模擬自己試 RDP Server

然後看了一下,程式碼不難,我就翻寫成 C# ,測了一下,蠻好玩的就分享一下..



[Web] 一些產生 Avatar 方便的網站,透過網址就可以產生的獨立 Avatar 圖片

2023-06-29

最近在測試一些前端的東西,我需要用戶的 avatar ,所以我的需求是

透過網址就直接能夠生出一張可愛或是勘看的圖片,所以網路上找一下,因為都是要自己手動生成

所以我把一些找到的整理一下



[Javascript] input 輸入處理:限制只允許輸入英文、數字和橫線 (-) 並自動轉換為大寫

最近我遇到了一個 JavaScript 的問題,雖然不是什麼大事,但對方需要在一個 input 欄位中,只允許輸入英文、數字和橫線 (-)。

此外,他希望輸入小寫英文字母時自動轉換為大寫。儘管這聽起來有些簡單,但每次都需要重新寫一次,因此我想將這個解決方案記錄下來。




這裡是我所使用的方法:在 onKeypress 事件中使用正則表達式(regex)進行輸入阻擋,

確保只有英文、數字和橫線 (-) 能夠進入。接著,在 onKeyUp 事件中,我將輸入的文字轉換為大寫,確保統一的輸入格式。



值得一提的是,我在網路上看到了一個使用 CSS 的方法,即使用 style="text-transform: uppercase"。

這樣可以讓輸入的字"看起來"是大寫,但在取值時仍然是小寫。雖然這是一個簡單的做法

但需要特別注意。如果在送出前將值轉換為大寫,也是一種方便的解決方案,避免使用 onKeyUp 的方法。



[Facebook] 關於出現 "應用程式網域必須符合 Facebook 網頁遊戲網址(https) 、行動網站網址、 Unity 二進位網址、網站網址或安全粉絲專頁頁籤網址的網域。" 的問題

2023-06-28


今天記錄一次遇到的狀況,交叉比對很久才找到

一個關於臉書 ( facebook ) 的開發上面遇到的問題

應用程式網域必須符合 Facebook 網頁遊戲網址(https) 、行動網站網址、 Unity 二進位網址、網站網址或安全粉絲專頁頁籤網址的網域。



[C#] ASP.net 出現 InvalidOperationException: Invalid non-ASCII or control character in header: 0x5132 的錯誤

2023-06-27


在 Web 開發的演進中,我們經歷了從 WebForm 時代到現在的 .Net 6 時代,而在這過程中,一些原本看似簡單的操作,卻可能因為技術的進步而產生一些意想不到的變化。

以前在 WebForm 時代,我們經常使用 ResponseRedirect 這樣的方式進行頁面跳轉,而且往往並不會遇到太多問題,

例如直接使用 ResponseRedirect("/sample.aspx?meg=儲存成功") 就能夠順利地將用戶導向指定的頁面,同時傳遞一些必要的參數。


然而,最近在使用 .Net 6 開發時,卻意外地遇到了一個 InvalidOperationException: Invalid non-ASCII or control character in header: 0x5132 的錯誤。



[C#][.Net] 關於 ASP.net 取得 POST 資料,動態增加 POST 值

2023-06-26

今天來寫一個很基本的東西,其實應該很多人都會了

只是最近要處理一些動態資料,所以測試一下關於 .Net Core Post 資料的問題



[C#] 判斷五行相生相剋

2023-06-24

今天分享一個不是很重要的東西,只是剛好用到,就筆記一下

主要是因為最近在看五行的相生相剋,大概規則是

相生:木生火、火生土、土生金、金生水、水生木。

相剋:木剋土、土剋水、水剋火、火剋金、金刻木。


[HTML] 一個可以提升 mailto 體驗的小技巧 (僅電腦使用)

2023-06-17

最近看到一個很有趣的東西,可以取代 mailto 的使用,如果下 mailto 的指令

現在人其實已經很少安裝信件軟體了,大部分都是用 Web Mail  ,我這邊大部分都是使用 Gmail

這時候關於點到 mailto 都會出現 



關於錯誤 Compiler Error Message: CS0433: The type 'ASP.global_asax' exists in both 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET

2023-06-16

最近在移植一些專案遇到這個問題

Server Error in '/' Application.

Compilation Error

Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS0433: The type 'ASP.global_asax' exists in both 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\64203716\99481ad\App_global.asax.lldgsdpc.dll' and 'c:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\root\64203716\99481ad\assembly\dl3\1fdcbdce\1ebebc9e_08a0d901\App_global.asax.DLL'



[C#] 呼叫 PowerShell 取得 Windows Event 4624 的 JSON 資料

2023-06-01

最近,因為一些事情我需要 去檢測關於 Windows Event 4624 的事件 ,剛好 黑暗執行緒的一篇文章,我就想說

可以透過這方法來做到,不過黑大是使用 PowerShell ,這東西對我來說是一個完全完全陌生的領域,不過我就想黑大都分享了

那我可以使用黑大的分享,然後我透過程式端去抓就可以達到我的需求,果然是一個及時雨




[C#] Telegram.Bot v19 - 使用 SendPoll 發動投票,處理投票問題

2023-05-12

今天繼續 Telegram.Bot v19 ,應該是最後一篇了,畢竟其他功能也不是常用到

這範例主要是,對於在群組中舉辦一場投票,然後可以收集票數,也可以知道誰投了那些答案

這主要是用在群組中會比較有用,當然你也可以一個一個去發不過只是搞死你自己而已..



[C#] Telegram.Bot v19 - ReplyKeyboardMarkup, InlineKeyboardMarkup 的範例應用

2023-05-10

上一篇文章  Telegram.Bot v19  回應訊息,回覆訊息的處理,我們寫最簡單的回應訊息,還有回覆訊息的方法

這一篇主要是使用另一個比較常用到的功能是關於實作  ReplyMarkup 的部份



[C#] Telegram.Bot v19 - 回應訊息,回覆訊息的處理

2023-05-09

最近一陣子被 Telegram 搞到有點煩,因為這之前使用的時候使用的版本是 Telegram.Bot 15 的版本

現在就是常常遇到,突然無法得知客戶傳過來的訊息,而且很多 InlineKeyboard 結果都不如預期

之後我就去看了一下,有更新竟然一次跳到 18.x 而且改了不是普通的多,今天就做個紀錄..


[Windows] 使用 command 改變 Windows Server 2022 時區

2023-04-06

今天遇到一個問題,就是在 Windows Server 2022 上面,明明 DevOps 給我權限夠大了,但是我還是

在設定中無法更改我的 Timezone,畫面長這樣



[ChatGPT] 兩個好用的瀏覽器套件 WebChatGPT , YouTube Summary with ChatGPT

2023-03-07

最近 ChatGPT 爆火,感覺要蹭一下流量,今天測試了兩個好用的外掛,可以介紹給大家

我這邊測試環境都是使用 Microsoft Edge ,不過因為可以安裝 Chrome 的,我就姑且直接這樣測試了



[VS] Team Explorer TFS 改變專案對應本地目錄

2023-02-22

 最近電腦突然掛掉,幸好資料都有上 Visual Studio Online ,專案簽下來後,我發現我 C槽 被配置的很小

所以我想要轉到 D碟 去,但是我找了一下才找到,想筆記一下,如果改變 TFS 的對應目錄


首先,您應該已經連接上專案 並且在 Visual Studio 有開啟 Team Explorer ,這時候點選 原始碼管理員


[C#] PuppeteerSharp - 針對 QuerySelector 出來的 Elements 分別快照成圖片

2023-02-15

上一篇我們談到 PuppeteerSharp - 快照網頁並產出 PDF + 設定 PDF 格式 ,繼續上篇

原始的畫面長這樣子


這時候,客戶希望我能夠,將每一個產品都進行快照成圖片

後來我發現其實是可以透過 PuppeteerSharp 做到的,感覺到強大阿



[C#] PuppeteerSharp - 快照網頁並產出 PDF + 設定 PDF 格式

Puppeteer-Sharp 是一個可以在.NET環境下運行的工具,它可以讓開發人員使用C#程式碼控制Headless Chrome或Chromium瀏覽器。

甚至你可以用自己的瀏覽器 ex.firefox

你可以透過這個工具來模擬人類使用瀏覽器的行為,像是瀏覽網頁、填寫表單、截圖或是生成PDF檔案。這篇文章將會介紹Puppeteer-Sharp 來將蝦皮某一個搜尋網頁

快照成 PDF,這套件有一個好處他自建瀏覽器核心,所以理論上應該是可以 Linux 運行,看一下網路上文件應該是沒啥問題。




[C#] 使用 HTML Agility Pack 抓取 Azure 上面的某區域的各服務狀態

2023-02-13

HTML Agility Pack 是一個基於 C# 的開源庫,旨在幫助開發人員處理 HTML 文檔。

它提供了一種簡單易用的方法來解析和操作 HTML 內容,比起使用正則表達式或原生 C# 內置函數要容易得多。


HTML Agility Pack 的核心功能是把 HTML 文檔轉換為一個可操作的頁面物件,方便開發人員進行各種 HTML 操作,如遍歷頁面節點,修改頁面元素,抓取頁面內容等。

同時,HTML Agility Pack 也支持頁面解析過程中的錯誤回調,可以幫助開發人員處理不完整或錯誤的 HTML 文檔。

使用 HTML Agility Pack 實現任務非常簡單。開發人員可以通過一些簡單的 C# 程序代碼將 HTML 文檔轉換為頁面物件,然後就可以通過頁面物件進行各種操作。

上篇文章 大概講過 如何操作 HTML Agitlty Pack 最近剛好遇到 Azure  東南亞區域掛掉 24小時事件,剛好測試一下來抓某一區域的狀態



[C#] 簡單測試一下 MaxBy , MinBy

2023-02-07

今天介紹一個 .NET6 之後才有的東西,MinBy  還有 MaxBy

其實我只是看到後想說跟原本的 Min 跟 Max 有啥不同,其實就字面上跟很多網路上的範例都可以知道這是幹嘛的

但是我很好奇如果是遇到一樣的值的呢,很多案例都是測 int[] 但是如果是 Object[] 的某屬性一樣那他是會拿到一個還是多個



[C#] 使用 iCal.NET 產生 .ICS 行事曆事件+附加檔案

今天接續之前透過  iCal.NET  來建立 .ics 的行事曆預約檔案的延伸

我們天才的業主希望在事件裡面加入 COUPON 圖片,我原本以為不行的想說婉拒

但是我後來查了一下好像可以,測試一下竟然成功,那就筆記一下



[C#] ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法 + __RequestVerificationToken

繼續上一篇文章 ( ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法,但不推薦 )沒說得事情,其實是有一個方法

可以增加安全性不用加上  [IgnoreAntiforgeryToken] ,還是適當的增加了安全性可以簡單防禦了 XSRF/CSRF 攻擊

但是不一樣的是上一篇文章,你可以純用 .html 去用 AJAX 呼叫,但是這不行只能乖乖地開 Page



[C#] ASP.NET Core 6.0 - 一種可以將 Page 當 WebAPI 用的方法,但不推薦

2023-02-06

今天來寫一個不推薦使用的小技巧,但是又是一個可以解決一些小問題的方法

簡單說一下情境,在 ASP.NET Webform 時代,有時候真的有時候給客戶一個東西要 retun JSON 的答案

但是我又不想使用一大個框架來解決問題,我會就把 Page 清乾淨後 直接處理POST過來的參數再 retun 我要的 JSON string

 這陣子我又遇到了,當然最好的解決方法,請使用 WebAPI ,這不是一個好的範例

用這方法請自己知道自己在做啥危險性有多高在評估使用。



[C#] .NET 6 - Enumerable.Chunk 寫分頁資料的新好幫手

今天來寫一個不算新但是很好用的東西 LINQ - Chunk , 這是 .NET 6  之後才有的

這東西很快只要一行就解決我每次都很不想寫的東西,就是分頁

以前寫分頁都要這樣下  LINQ  AllData.Skip((page-1)*perPageDataCount).Take(perPageDataCount)

現在只要一行解決



[C#] 一個無聊的冷知識關於已知運算常數編譯後的MSIL


寫一個有趣的小東西,大概算是 C# 冷知識,大概就跟台灣本島最北的國際機場是桃園中正機場而不是松山機場一樣冷知識

今天好奇問同事一個問題 假設我要 1+2+3+...+100 這答案

1. 我手動打 return 1+2+3+4+5+...+100; 

2. 我用迴圈  for (var i = 1; i <= 100; i++) 最後 return sum; 

3. 用梯形公式解  return ((1+100)*100)/2 

這三個到底 哪一個執行比較快


[C#] 使用 iCal.NET 產生 .ICS 行事曆事件+鬧鐘


雖然已經  21 世紀了,我也不知道為何業主非常喜歡 .ICS 這東西

不過,沒辦法收費辦事情,之前,我是自己大概看一下規格後自己產生,

但是最近客戶要做一些改動需求,不能夠這麼單幹了,查詢了一下,有一套一直有在更新的套件 Ical.Net


[C#] 在執行期下取得所有用到的套件版號資訊

2023-02-04

最近跟同事在測試一個 .NET Core 3.1 跟 .NET 6 的套件問題

我們再抓到底當時候用哪一個套件所產生的錯誤,因為我們一值 Nuget 換不同版本測試

這時候我們必須要知道到底現在(執行期)用的套件是哪一個版本

所以今天簡單筆記一下,就是在執行期的時候抓取所用的 package 版本



[C#] 關於MemoryCache GetOrCreate 遇到 thread-safe 的問題


同事 Roger 碰到一個小雷,跟我說過後,決定記錄一下

因為一些專案的緣故,開發環境是 ASP.NET Core  6 他使用的 

Microsoft.Extensions.Caching.Memory.MemoryCache 

但是在大量用戶存取(非同步) 的時候造成 Exception 


[C#] 判斷某個時段有沒有壓到另一個時段

2023-02-03

關於時間問題,這我在專案中寫過多次每次寫都要重新考慮一次

這次就索性整理一下,然後就是直接複製貼上,懶得重寫

簡單的說因為常常寫訂單系統,就是有像是家教那樣他假設 12:00~13:00 有課,所以他的客戶不選擇這時段

這時候程式怎麼判斷時段有沒有壓到


[C#] 關於 JsonConvert.SerializeObject 的 二三事 - 如果 List 是空得(非null) 就不顯示

2023-02-02

最近遇到的一個問題,就是關於 Json.NET 的  SerializeObject 的顯示問題

其實一般狀況下我就是直接無腦的  JsonConvert.SerializeObject(object)

但是,最近在維護一個系統因為物件要改成 Nullable 就有點麻煩,所以看看能不能直接再 SerializeObject

解決盡量的不使用 Attribute 或是改寫 Nullable 去解決



[C#] IntersectBy , ExceptBy 常忘記的兩個好用的 LINQ 方法

寫一個其實很基本,但是我每次都用蠢方式解決的東西,其實 .NET LINQ 都準備好好地給你用

認識我的人都知道我碰 NOSQL 比較多,所以我常常是在Sever 變成物件後解決一些事情

最近同事說到為何不用 IntersectBy 我才想起來有這東西,就筆記一下我怕自己又忘記有好用的東西



[C#] ASP.NET Core 6.0 - 在開發中遇到無限循環只出現 熱重新載入,點選"編輯"跟"停止"都無效

2023-02-01

最近一直遇到這個問題,剛剛測試一下算是解決了,就筆記一下

平常時候我都是用 Ctrl+F5 測試東西,但是有時候要追蹤錯誤就會按下 F5  逐步偵錯

結果遇到錯誤點的時候跳出這樣的畫面


[C#] ASP.NET Core 6.0 - 一些基本概念使用 BindProperty , HtmlHelper , 不透過 AJAX 純用 POST 做雙連動下拉選單

今天寫一個對很多人來說是很基礎的東西,不過因為之前我是從 ASP.NET Webform 寫的比較熟

中間的  ASP.NET MVC 時代,我比較沒有去觸碰 ,之前有測試過一些東西,但是因為很多原因所以還是主要不會去用此開發

現在到了 ASP.NET 6  的時代,有些基本功可能跟當初的 Webform 不太一樣今天筆記一下

也怕自己忘記



SUZUKI SWIFT 的車鑰匙(遙控器)更換電池

2023-01-31

最近遇到的問題,車遙控器沒電了,然後車有提示 low battery 

然後自己測試一下,發現 Suzuki 的好像沒有很難,看起來比拆手機簡單很多

在拆的時候有拍照,想說就記錄一下吧..


[C#] ASP.NET Core 6.0 - 移除 wwwroot 下特定類型的檔案支援

上篇文章 ASP.NET Core 6.0 - 放置 .7z 檔案至 wwwroot 可被下載 ( 加入 MIME 支援 ) 說到了原本其實 ASP.NET

原本就支援很多副檔名只要你放在 wwwroot 中就可以下載

有多少檔案類型可以被支援呢,文章下半部分有可以查詢的地方,其實直接去找 github .netcore 原始碼也可以找到



當麻許的超技八 2014 | Donma Hsu Design.