最新

Gaze Guard 短影片旁白的 TTS 成本與隱私防護示意圖

短影片旁白的成本,其實比我想像低

我最近在做一支 Gaze Guard 的 20 秒產品介紹影片。 原本想說簡單做個動畫就好。 後來想說如果有配音,會感覺比較生動也比較能夠描述使用的情境和達成的效果。 這次我測了什麼 我測的是產品介紹影片用的英文旁白。 工具底層使用的是 Edge TTS,也就是 Microsoft Edge 的線上 Text-to-Speech 服務。常見的底層工具是 edge-tts。 這不是正式 Azure Speech API 的計費路徑。 在我這次的環境裡,它沒有要求 API key,也沒有回傳可見的 per-use billing。 所以這次測試本身,比較像是快速 prototype。 如果未來要正式商用、穩定大量產出,就要回頭看 Azure Speech、OpenAI TTS、ElevenLabs 這類正式付費方案。

By SteepingLogic
用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard

用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard

# 用 Cloudflare Tunnel,從外面連回本機 Hermes Dashboard 我有一台 local Hermes。 平常它就在自己的機器上跑。 可能是家裡的桌機。 可能是 NAS。 可能是一台一直開著的 Linux box。 也可能只是我自己的筆電。 問題是,人一離開那個網路,Hermes dashboard 就變成一個只存在於 localhost 的東西。 我想在外面打開它。 但我沒有 static IP。 沒有買網域。 也不想進路由器開 port forwarding。 因為那條路通常長這樣: * 找 public IP * 設定 NAT * 開 port * 處理防火牆 * 補 HTTPS * 設定憑證 * 再擔心 origin IP 被掃 非常友善。 所以這篇先走另一條路:

By SteepingLogic
Invoshot 開發日記|正向回饋

Invoshot 開發日記|正向回饋

想信很多人在開發的時候都常常會做一件事,那就是: 不斷地反覆思考,在腦袋內把流程跑過很多次,然後思考哪裡可以做得更好 不限坐在電腦前的時後,可能是在捷運上,在人行道上, 在馬桶上或是在洗澡的時候 🤪 我不斷地在想:AI 辨識完一張發票後,使用者接下來最需要的是什麼? 每個欄位都要核對嗎? 這麼多欄位真的不會漏看嗎? 所以我在 Invoshot 裡加了提醒功能。 辨識結果出來後,系統會把比較需要注意的地方標出來。 不是把所有不確定都丟給使用者,而是把他真正需要介入的那幾秒鐘留出來。 今天收到一則訊息: 今天用了有新增提醒功能很棒! 真的有變輕鬆 😎 看到這句的時候,我第一個想到的是: 原來那些只是我腦內風暴的優化項目,使用者是真的可以感受到差異的! 感覺又有動力了!

By SteepingLogic
ncdu story

程式

Linux 空間清理神器 ncdu

Linux 空間清理神器 ncdu 身為一個現代工程師,一定是要使用 AI 協助開發的,但上週使用到一半突然 AI 就卡住了,檢查是因為回傳的資料沒辦法 json parse。排查後發現原來是我的硬碟空間滿了 "Disk Usage: 100%" 的警報。 於是我使用了 df -h 想找出是誰吃光了我的硬碟時,看到的不是熟悉的掛載點,而是一個讓人困惑的路徑:/dev/mapper/ubuntu--vg-ubuntu--lv。而且沒辦法再往裡面挖檔案,因為它是一個 Block Device。瞬間我傻了...這到底是什麼?我的空間都去哪了? 用這篇文章來分享 AI 推薦給我的工具:ncdu,真的超方便! 讓我相見恨晚的神器 以前遇到空間不足,我總是傻傻地用 df + du -h

By CL HSIEH

程式

Laravel 串 GOOGLE 第三方登入 - Part 1 申請權限

現在的網站如果沒有做第三方登入感覺就落伍了。 不過說真的,如果有第三方登入可以節省非常多的時間在打用戶資料,非常不友善,而且還要多記一組帳號密碼。像我自己本身就覺得每個網站都有自己的帳號密碼非常惱人,到底誰會記得!!! 雖然到了 2024 年的今天,已經很多人有分享也有 AI 輔助了,不過我自己還是做個紀錄,畢竟對接的過程還是有遇到問題,花了一些時間在 debug 前置作業:申請網站驗證的權限 要使用 Google 第三封登入需要有一些前置作業,首先要先連到 https://console.cloud.google.com/ OAuth 同意畫面 進來後會像下面這張圖,然後要先去 OAuth 同意畫面 接著就是照畫面上的只是填好資料按下一步,如果不知道怎麼填可以參考下圖 測試的時候外部沒辦法連到這個 API,所以要先把自己的 測試用帳號 填寫上去,不然可是沒辦法順利得到回傳的 完成後按下儲存,接下來就要設定 憑證 建立憑證 接這滾輪往下滾會出現重新導向網址的設定 重新導向 URL 重新導向的網址要填

By CL HSIEH
AI coding

演算法

Leetcode 題型分類與解題方向

我發現這些 leetcode 好像依照不同的題型會有類似的解法,所以請 AI 幫我統整每一個種類題型的解題方向。大致上可以分成 9 種類型,如果遇到這類型可以先往每個類別中列出的解題方法來思考,在這裡做個紀錄 1. Array Problems * Two Pointers: Used for problems like finding pairs, subarrays, or for partitioning arrays. * Example: 283 (Move Zeroes), 11 (Container With Most Water). * Sorting: Often needed before applying binary search or two-pointer techniques. * Example: 56 (Merge

By CL HSIEH
lock

小韭菜開發日記

如何成功讓你的 Wordpress 網站被判斷為 Https 的安全網站

網站設置好以後過了幾天,即使我已經設定好了CA 憑證,瀏覽器左上角也變成鎖頭 SSL 連線加密模式了,Google Search Console 依然沒有辦法判定我的網站是 https 安全網站。 應該也是有人跟我遇到相同的情況吧? 這邊分享一下後來怎麼解決這個問題的 301 永久轉址 首先就是先上我的網域,然後看看 http 未加密連線 http://my-domain 的請求有沒有被轉到 https 去 有!很好,所以問題不是出在這裡。如果沒有的話可以參考這裡去設定: https://www.a2hosting.com/kb/security/ssl/redirecting-users-to-ssl-connections/ Mix content 使用工具 why no padlock 檢查原因 根據官方的指引,

By CL HSIEH

程式

新作品 - 形象官網製作

最近完成了一個新作品:製作形象官網 算是第一次製作別人的網站,中間遇到不少問題,還好關關難過關關過 這篇要偷偷偷渡一下這個網站:翰瑀實業 翰瑀實業 Subtitle for This Block 擁有多年的外銷經驗,幫助過許多台灣廠商快速上架到海外實體通路 是你外銷路上的好夥伴,提供商品出口、通路上架以及行銷推廣的一條龍服務! 因為大多都是靜態功能,所以選擇用一頁式網站呈現 裡面用上了酷炫的幻燈片功能,讓照片以輪播 除此之外還有圖片 fade in 的效果 還另外設計了表單與收發信的功能 整個從零開始慢慢長出來,感覺滿有成就感的~ 要是您也想製作類似的網站,可以來在下方留言 :)

By CL HSIEH
Laravel 服務容器化

程式

Laravel 服務容器化

開發的時候,都是直接在開發電腦上安裝 php, mysql, nodejs, nginx 但是要搬移到 server 的時候實在是痛苦不堪,所有的東西都要再安裝一次 php 尤其麻煩,還要安裝一堆擴充套件,要一個一個錯誤嘗試實在吐血 想要解決這個煩人的問題,當然就是服務容器化啦! 這樣以後要再次部署,但是那些 queue worker 要怎麼跑呢?放在跟主程式同一個 container 總覺得不太對勁,而且還不能平行擴展。還有那些排成怎麼辦呢?去 container 裡面設定 cronjob 嗎? 還好已經有許多強者做過這樣的操作了,我只要照著做一遍就可以了。 這裡提供我參考的網站,裡面寫得滿詳細的:Running the Laravel Scheduler and Queue with Docker 總結來說,就是讓每個 queue worker 去用跟 laravel server

By CL HSIEH
暴衝的硬碟使用量-binlog 大軍

程式

暴衝的硬碟使用量-binlog 大軍

使用 mysql v8 當資料庫,某一天查看硬碟使用量赫然發現竟然用了 100 多 GB 的空間! 我就感到好奇了,我的總資料量也才 600MB,加上一些衍生計算和 index 應該也不會超過 5 GB 的使用量。所以我就開始檢查為什麼 mysql 會突然佔用了這麼多的空間。 在 /var/lib/mysql 路徑底下多了好多個 binlog.XXXXXX 的檔案,每個檔案都不小。上網查詢後才知道這些是 mysql 的更新操作所產生的語法紀錄,是用來還原資料或是叢集資料庫架構所需要的紀錄檔案,但我只是單資料庫架構的話好像就不需要一直產生這樣的 log 出來。 從網路上的資料看起來有幾種調整方式: 調整 binlog_expire_logs_seconds 值,縮短過期清除時間 默認是 2592000s => 30 天

By CL HSIEH