分類
好用軟體

Cloudflare提供了免費的網站服務

Cloudflare Drop 提供了靜態網站免費寄存的服務, 只需要上傳 zip 檔, 馬上完成上線.

https://www.cloudflare.com/drop/

其實這個服務主要是依存於 workers and pages 的服務下, 也是屬於 serverless 的方式進行服務提供.

這裡不詳述如何使用, 可以參考以下文章:

上傳後, 你可以在 60分鐘內認領你的網站, 只需要註冊或登入即可, 若你有自己的域名, 也可以掛載在自己域名服務之下, 非常方便快速.

右上方界面有個提供給 AI使用的操作說明(copy for your agent), 可以提供給你的 AI進行了解並協助你作後續的開發應用:

Fetch https://www.cloudflare.com/drop/llms.txt

這裡做了一些小功能都是純前端的 Javascript 即可實現的工具箱:

https://toolbox.diary.tw/

提供了以下功能:

  • Pi 計算器 – 提供了指定位數的 Pi 計算, 並可快速找到指定的字串, 如你的生日等.
  • 線上抽獎轉盤 – 提供了抽獎轉盤, 方便抽獎活動使用.
  • QR Code 工具 – 提供了 QR Code 生成與解讀, 可以用上傳圖片或是照相的方式.
  • URL 編解碼 – 提供了 URL Encode 與 Decode 字串的功能.
  • 密碼產生器 – 提供了指定位數與指定字串型態的密碼產生.
  • 圖片壓縮轉檔 – 提供了上傳圖片可以快速轉換為對應格式與進行指定比例縮小功能, 剪裁, 旋轉, 上下與左右的鏡向, 並算出能節省多少大小.
  • PDF工具 – 提供了合併、拆分、旋轉工具, 都在本地執行, 安全無上傳檔案的風險. (2026/8/27 0:02)

以上工具都是不透過 server 就只在前端進行運算的功能, 方便大家使用!

分類
好用軟體

Squid Proxy的規則設定

通常架設好 Squid Proxy 後, 用來做 Proxy 代理功能時, 會希望能限制可使用的來源 IP 或是可訪問或不可訪問的 IP (除了做權限管控外, 還可以管理限制使用者可以訪問的目的網站).

今天有個需求是這樣的, 允許特定 IP 訪問特定的網站, 乍看下會這樣下:

acl AllowedIPs src 192.168.100.0/24
acl AllowedDomains dstdomain .google.com .yahoo.com
http_access allow AllowedIPs
http_access allow AllowedDomains
http_access deny all

但是這樣會變成 OR 的邏輯, 也就是只要白名單 IP, 或是白名單域名(包含子域名), 就會放行, 與原本需要的特定 IP 訪問特定網域不同.

分類
好用軟體

markdown轉換工具-markdown.new

基本上在使用 AI 工具時, 希望能節省 context windows所使用的 token, 所以給 AI 閱讀的內容盡量要文字化, 減少再次轉換的token消耗, 可以參考這篇:

Claude老是達到用量上限?4個情境、9個技巧,教你有效縮減token

這裡有個好工具, 而且是 Cloudflare 提供的:

https://markdown.new/

將提供給 AI 閱讀的內容進行 markdown 化, 舉例, 將某網頁內容 markdown化, 如下:

https://markdown.new/https://diary.tw/archives/2559

就可以將原來的 web page 內容轉為 markdown 的文檔格式, PDF 也可以哦, 如:

https://jmh.mohw.gov.tw/storage/files/rUxcxnpNHJyTDBRGji1itnZYkQXEZmUIIWpAh2iS.pdf

加上 markdown.new 後:

https://markdown.new/https://jmh.mohw.gov.tw/storage/files/rUxcxnpNHJyTDBRGji1itnZYkQXEZmUIIWpAh2iS.pdf

如此一來, 便能有效地將原本網頁或是 PDF檔式的檔案轉換成對 AI 較有效率的 markdown 格式了.

分類
好用軟體

gpt-oss開源模型動手玩

OpenAI 公佈兩個 gpt 開源模型:

  • gpt-oss-120b
  • gpt-oss-20b

可以參考這篇管方資料:

https://openai.com/zh-Hant/index/introducing-gpt-oss/

最方便下載來玩的方式是使用 ollama (可以參考之前這篇介紹: https://diary.tw/archives/2609)

由於 ollama 在之前的更新, 已經提供在 GUI 上直接選擇模型並進行問答, 所以在更新後的 ollama 介面上可以看到 gpt-oss-20b:

當然也還是可以使用 console 執行, 使用指令 ollama run gpt-oss

C:\Users\tim>ollama run gpt-oss
pulling manifest
pulling b112e727c6f1: 100% ▕██████████████████████████████████████████████████████████▏  13 GB
pulling fa6710a93d78: 100% ▕██████████████████████████████████████████████████████████▏ 7.2 KB
pulling f60356777647: 100% ▕██████████████████████████████████████████████████████████▏  11 KB
pulling d8ba2f9a17b3: 100% ▕██████████████████████████████████████████████████████████▏   18 B
pulling 55c108d8e936: 100% ▕██████████████████████████████████████████████████████████▏  489 B
verifying sha256 digest
writing manifest
success
>>> /show info
  Model
    architecture        gptoss
    parameters          20.9B
    context length      131072
    embedding length    2880
    quantization        MXFP4

  Capabilities
    completion
    tools
    thinking

  Parameters
    temperature    1

  License
    Apache License
    Version 2.0, January 2004
    ...

>>> Send a message (/? for help)

接下來就可以在本地執行這個 OpenAI 的開源 gpt 模型了.

 

分類
好用軟體

什麼瀏覽器最保護你的隱私? PrivacyTests開源專案告訴你

這個 PrivacyTests 專案測試各式瀏覽器於三種平台上(Desktop, iOS, Android), 多項的隱私功能測試:

https://privacytests.org/

想了解更多這些瀏覽器在使用上會不會有隱私性問題, 這個網站可以參考看看.

繼續閱讀:

 

分類
好用軟體

Pocket服務要停止了,有沒有什麼替代可以推薦呢?

Pocket服務要停止了:

https://support.mozilla.org/zh-TW/kb/Future-of-pocket

我們即將在 2025 年 7 月 8 日關閉 Pocket,這是一個艱難的決定。感謝您多年來與我們並肩同行,我們為 Pocket 對使用者和社群帶來的影響力深感自豪。

這個好用的書籤加上稍後閱讀並且可以跨平台的功能, 即將於 2025/7/8 關閉, 記得要把自己的重要資料匯出, 另外付費會員也會依照比例退費.

另外有沒有其他適合的平台服務可以使用呢? 可以先來看看大家的討論:

https://www.reddit.com/r/macapps/comments/1ksw45c/pocket_shutting_down_alternatives/

這裡整理一下:

  1. instapaper: https://www.instapaper.com/
  2. Raindrop.io: https://raindrop.io/
  3. Doublememory: https://doublememory.com/
  4. Reader: https://readwise.io/read
  5. Karakeep: https://github.com/karakeep-app/karakeep
  6. histre: https://histre.com/
  7. backtoit: https://www.backtoit.io/
  8. GoodLinks: https://goodlinks.app/

看看大家還有沒有什麼推薦?

 

分類
好用軟體

在本地端執行DeepSeek模型

最近火熱的 DeepSeek LLM模型, 你玩過了嗎?

其實也可以很容易地在地端執行這個 LLM模型, 當然也可以執行其他廠家的 LLM模型. 使用的工具為這個十分好用的 ollama:

https://ollama.com/

ollama 這個開源工具是用來簡化在地端執行這些 LLM模型的工具, 方便快速地可以在本地部署執行環境, 而且也可以在本地提供 API服務的功能.

先來看看在 Windows/Mac/Linux 下如何運行, 它將執行環境打包可以下載的安裝檔, 安裝完成後是利用 console 來執行互動式指令, 以 Windows 為例, 先下載一個安裝程式, 安裝完成後, 利用 console 來執行, 常用指令如下:

分類
好用軟體

幫幫數發部吧!

日前的一篇新聞:

https://www.upmedia.mg/news_info.php?Type=24&SerialNo=216712

看到有關這個”樂齡好幫手”網站上的點閱率偏低的問題:

https://agepass.adi.gov.tw/

看起來已經看不到點閱率了, 我們只好利用 API 來查看看, 以首頁第一篇的內容網址: https://agepass.adi.gov.tw/card/h57 為例, 我們可以利用該網址的 API Call 來取得內容:

curl 'https://agepass.adi.gov.tw/api/v1/card/h57' -H 'Referer: https://agepass.adi.gov.tw/card/h57'

在 Console 執行一下可以取出對應的 JSON 回應 (或利用線上工具 https://reqbin.com/curl), 其中的 view_count 如下:

"view_count": 486,
"like_count": 15,

也就取得了點閱次數為 486 次了, 隨著多打幾次 curl 點閱次數也會隨之增加, 大家可以利用這個方式來取得文章的點閱次數, 也可以幫幫數發部的網站有更多的點擊數哦!

[2024/11/24 17:05]

由於原來的範例中的 https://agepass.adi.gov.tw/card/h57 文章已下架了, 所以可以改用其他可用的文章如:

分別對應的 API 為 https://agepass.adi.gov.tw/api/v1/card/h66https://agepass.adi.gov.tw/api/v1/card/2220

利用 curl 訪問指令如下:

curl 'https://agepass.adi.gov.tw/api/v1/card/h66' -H 'Referer: https://agepass.adi.gov.tw/card/h66'
curl 'https://agepass.adi.gov.tw/api/v1/card/2220' -H 'Referer: https://agepass.adi.gov.tw/card/2220'

PS:

上面的 curl 為 linux 下的內建指令, 若是在 Windows 下要使用內建的 cURL, 語法不太相同, 指令則為:

curl -H “Referer: https://agepass.adi.gov.tw/card/2220” https://agepass.adi.gov.tw/api/v1/card/2220

 

 

 

分類
好用軟體

IP調查小程式-功能新增

之前介紹了使用 Cloudflare worker來進行客戶端 IP調查的小程式(https://diary.tw/archives/2182), 最近新增一些功能上來.

  1. 利用瀏覽器訪問時, 會加上完整的 html, 並增加了 Google Analytics 追蹤碼, 來記錄使用的次數.
  2. 若是利用非瀏覽器訪問時, 會直接輸出純文字 ip 而不會加上其他的內容, 例如: curl https://ip.diary.tw/
  3. 利用這個 geoplugin 這個免費的 API 功能來查找對應 IP的資訊, 請參考這個 API文件說明: https://www.geoplugin.com/webservices/json, 使用方式為 https://ip.diary.tw/?data=geo, 可以查找對應 IP的所在地與該地區使用貨幣與匯率. 輸出範例如下:
{
  "geoplugin_request":"12.34.56.78",
  "geoplugin_status":200,
  "geoplugin_delay":"1ms",
  "geoplugin_credit":"Some of the returned data includes GeoLite2 data created by MaxMind, available from <a href='https:\/\/www.maxmind.com'>https:\/\/www.maxmind.com<\/a>.",
  "geoplugin_city":"New Taipei City",
  "geoplugin_region":"New Taipei City",
  "geoplugin_regionCode":"NWT",
  "geoplugin_regionName":"New Taipei City",
  "geoplugin_areaCode":"",
  "geoplugin_dmaCode":"",
  "geoplugin_countryCode":"TW",
  "geoplugin_countryName":"Taiwan",
  "geoplugin_inEU":0,
  "geoplugin_euVATrate":false,
  "geoplugin_continentCode":"AS",
  "geoplugin_continentName":"Asia",
  "geoplugin_latitude":"24.9466",
  "geoplugin_longitude":"121.586",
  "geoplugin_locationAccuracyRadius":"20",
  "geoplugin_timezone":"Asia\/Taipei",
  "geoplugin_currencyCode":"TWD",
  "geoplugin_currencySymbol":"NT$",
  "geoplugin_currencySymbol_UTF8":"NT$",
  "geoplugin_currencyConverter":32.0408
}

 

請大家多加利用 IP查找小功具: https://ip.diary.tw

 

[2026/5/30 10:36]

由於原來的 ip geolocation service 已變成只有付費方案了如下:

{
  "geoplugin_status":403,
  "geoplugin_message": "geoPlugin API is no longer available for free use. To continue access, please upgrade to a paid plan",
  "geoplugin_url": "https://www.geoplugin.com/subscription"
}

 

所以改用仍有 free tier 的另一個服務: https://ipgeolocation.io/, 免費就有一定的使用量可供應用, API 也簡單, 只需要註冊帳戶, 就可以拿 API Token 去訪問取得資訊, API 使用方式請參考:

https://ipgeolocation.io/documentation/ip-location-api.html

調整一下程式碼, 之後訪問 https://ip.diary.tw/?data=geo 時, 就可以拿到對應的回傳結果如下:

{
  "ip": "12.34.56.78",
  "location": {
    "continent_code": "AS",
    "continent_name": "Asia",
    "country_code2": "TW",
    "country_code3": "TWN",
    "country_name": "Taiwan",
    "country_name_official": "Republic of China",
    "country_capital": "Taipei",
    "state_prov": "New Taipei City",
    "state_code": "TW-NWT",
    "district": "Banqiao District",
    "city": "New Taipei City",
    "zipcode": "231",
    "latitude": "24.97828",
    "longitude": "121.53948",
    "is_eu": false,
    "country_flag": "https://ipgeolocation.io/static/flags/tw_64.png",
    "geoname_id": "11697228",
    "country_emoji": "🇹🇼"
  },
  "country_metadata": {
    "calling_code": "+886",
    "tld": ".tw",
    "languages": [
      "zh-TW",
      "zh",
      "nan",
      "hak"
    ]
  },
  "currency": {
    "code": "TWD",
    "name": "New Taiwan Dollar",
    "symbol": "NT$"
  },
  "asn": {
    "as_number": "AS38841",
    "organization": "kbro CO. Ltd.",
    "country": "TW"
  },
  "time_zone": {
    "name": "Asia/Taipei",
    "offset": 8,
    "offset_with_dst": 8,
    "current_time": "2026-05-30 10:34:55.910+0800",
    "current_time_unix": 1780108495.91,
    "current_tz_abbreviation": "CST",
    "current_tz_full_name": "Taipei Standard Time",
    "standard_tz_abbreviation": "CST",
    "standard_tz_full_name": "Taipei Standard Time",
    "is_dst": false,
    "dst_savings": 0,
    "dst_exists": false,
    "dst_tz_abbreviation": "",
    "dst_tz_full_name": "",
    "dst_start": {},
    "dst_end": {}
  }
}

資訊更多元更豐富了, 歡迎多加利用.

[2026/8/17 7:20]

原來在 Cloudflare 中有 request.cf 變數(可參考: https://developers.cloudflare.com/workers/runtime-apis/request/),裡面也有對應的地理資訊,新增 https://ip.diary.tw/?data=geo2 範例資料如下:

{
  "httpProtocol": "HTTP/2",
  "clientAcceptEncoding": "gzip, deflate, br",
  "requestPriority": "weight=42;exclusive=0;group=0;group-weight=0",
  "edgeRequestKeepAliveStatus": 1,
  "requestHeaderNames": {},
  "clientTcpRtt": 12,
  "clientQuicRtt": 0,
  "colo": "TPE",
  "asn": 38841,
  "asOrganization": "kbro CO. Ltd.",
  "country": "TW",
  "isEUCountry": false,
  "city": "Banqiao",
  "continent": "AS",
  "region": "Taipei",
  "regionCode": "TPE",
  "timezone": "Asia/Taipei",
  "longitude": "121.46719",
  "latitude": "25.01427",
  "tlsVersion": "TLSv1.3",
  "tlsCipher": "AEAD-AES128-GCM-SHA256",
  "tlsClientRandom": "iZQjjbMHDvqj7bV9mGrvFOLCfcVTM7EfuEhmcEf6biE=",
  "tlsClientCiphersSha1": "Ycpx9ze2EIngjFvfLFng3z8MFzM=",
  "tlsClientExtensionsSha1": "fmoiUXxub2JA3Bd4T7jJ6OCQJ/s=",
  "tlsClientExtensionsSha1Le": "75rYBxmWw7lFoVazIKaJJGtd1xc=",
  "tlsExportedAuthenticator": {
    "clientHandshake": "d9433345ccb61cda32fc50991665f17c63e3f1d63d7bf8ef016c552543ee0920",
    "serverHandshake": "948cc32b3413616b0a331ed886a26abca9625c85e753afb790711648aa0497d4",
    "clientFinished": "90eb15c16b0812c9168d858e7d02b142a8358b1480766efb85b37479d74a41fa",
    "serverFinished": "1df4bd5176a49fbfd4f40e2b04827eed5e0a32ef520a1d4934cabd915f2ea9b4"
  },
  "tlsClientHelloLength": "1885",
  "tlsClientAuth": {
    "certPresented": "0",
    "certVerified": "NONE",
    "certRevoked": "0",
    "certIssuerDN": "",
    "certSubjectDN": "",
    "certIssuerDNRFC2253": "",
    "certSubjectDNRFC2253": "",
    "certIssuerDNLegacy": "",
    "certSubjectDNLegacy": "",
    "certSerial": "",
    "certIssuerSerial": "",
    "certSKI": "",
    "certIssuerSKI": "",
    "certFingerprintSHA1": "",
    "certFingerprintSHA256": "",
    "certNotBefore": "",
    "certNotAfter": "",
    "certRFC9440": "",
    "certRFC9440TooLarge": false,
    "certChainRFC9440": "",
    "certChainRFC9440TooLarge": false
  },
  "verifiedBotCategory": "",
  "edgeL4": {
    "deliveryRate": 284711
  }
}

 

大家也可以多加利用!

分類
好用軟體

幾個AI工具的比較

最近的AI工具熱潮, 大家跟上了嗎?

先列出幾個常用的AI工具:

再來利用這幾個AI工具自己來比較, 題目如下:

請比較以下幾個 AI 工具:

  • https://www.perplexity.ai/
  • https://chatgpt.com/
  • https://gemini.google.com/
  • https://claude.ai/
  • https://copilot.microsoft.com/

Perplexity 回答如下:

Perplexity AI

  • 由 Anthropic 公司開發的對話式 AI 助手
  • 擅長回答各種問題,提供詳細、有見地的回答
  • 可以進行多輪對話,記憶上下文
  • 支持多種語言

ChatGPT

  • 由 OpenAI 開發的對話式 AI 模型
  • 擅長自然語言交互,回答問題、寫作等
  • 知識庫截止時間較早,無法回答最新事件
  • 免費使用,但有使用限制

Gemini (Google AI)

  • 由 Google 開發的 AI 助手
  • 集成了 Google 的搜索、知識圖譜等技術
  • 可以回答問題、進行對話
  • 支持多種語言

Claude (Anthropic)

  • 由 Anthropic 公司開發的 AI 助手
  • 擅長回答問題、寫作、分析等
  • 可以進行多輪對話,記憶上下文
  • 支持多種語言

GitHub Copilot (Microsoft)

  • 由 Microsoft 與 OpenAI 合作開發的程式碼輔助工具
  • 可以根據註釋或上下文自動生成程式碼片段
  • 集成在 VS Code 等 IDE 中使用
  • 主要面向程式開發人員

總的來說,這些 AI 工具都具有強大的自然語言理解和生成能力,在問答、寫作、程式開發等方面有不同的特點和優勢。選擇時可以根據具體需求和使用場景進行選擇。

(可以參考原始回答: https://www.perplexity.ai/search/qing-bi-jiao-yi-xia-ji-ge-ai-g-wu.ArzfNSWu69ieeKD3tAQ#0)