iT邦幫忙

技術文章

RSS
鐵人賽 Software Development DAY 20
Kotlin Ktor 實戰 101 系列 第 20 篇

Kotlin Ktor 實戰 101 Day 20 Exposed 入門與資料庫連線

day 19 結尾寫的是「下一篇把 Exposed 裝進來,建立 table 定義,接上資料庫連線,然後處理連線這種 AutoCloseable 資源要怎麼交...

鐵人賽 IT Operation DAY 29

【Day 29】給了工具、準備了環境,改變就會發生嗎?

你腦中已經有了新的組織運作場景了。不過在你對團隊分享這個令人期待的未來之前,可能還有一件事要先思考:我怎麼帶大家走到那個未來? 前兩天我們提到軟體服務廠商只能提...

鐵人賽 AI Security DAY 15

劫盜地圖現形記:如何透過網路流量與 CASB 揪出企業內的影子 SaaS 與未授權 AI 節點

劫盜地圖(Marauder's Map)是哈利波特故事中的神奇魔法地圖,他可以詳細的顯示霍格華茲內部每一個房間、每一條走廊及密道,以及每個人的確切位置。 在過去...

鐵人賽 Software Development DAY 30

Day 30:從黑箱到確定性,Windows GUI 自動化的三十天工程總結

三十天前,這個系列的第一篇拋出了一個現實問題:為什麼在現代軟體工程中,Windows 桌面應用的自動化測試幾乎被遺忘在 CI 之外? 長年以來,桌面開發團隊普遍...

鐵人賽 IT Operation DAY 21

Day 21|PowerShell HTML 報表:把冷冰冰的 CSV 變成一眼看懂的巡檢 Dashboard

Day 20 我們終於把 PowerShell Script 放進:Task Scheduler 現在已經可以做到:06:00↓自動執行↓Server Heal...

鐵人賽 AI 自動化 DAY 19

查到的財報是別家公司的:同業盡職調查,查證交給 AI,比對交給人

有一次,我們差點把別家公司的財務數字讀給對方聽 去年一場旅遊展下來,攤位上一天收了十幾張同業的名片,其中一家在東南亞市場做得看起來很不錯,很適合談長期地接合作。...

鐵人賽 Kubernetes DAY 29

Day 29:用 Helm / Helmfile 把整套 stack 版本化

昨天處理了 Grafana 裡面的設定,今天處理叢集裡面的東西。 前天盤點出三個洞:Loki 的設定只存在叢集裡、Tempo 全吃預設、五個 chart 的版本...

鐵人賽 Build on Google AI DAY 12

Day 15|App 只能讀、不能寫:Firestore 資料模型與安全規則

系列:30 天用 Google AI 打造臺灣防災速報 App(Day 15/30) 第三週的目標是上線。前兩週的程式都在本機執行,9/25 起搬到雲端:示...

鐵人賽 Modern Web DAY 20

Day 20|網站上的一句話就能騙 Agent?Prompt Injection 與 WebMCP 的安全邊界

本篇重點 WebMCP 讓 Agent 有更穩定的 Tools,也同時讓 Prompt Injection 的後果變得更值得重視。因為 Agent 不只是「讀錯...

鐵人賽 Build on Google AI DAY 12

Day 14|第二週回顧:四項 AI 功能做到哪裡,以及模型四次把規則當成內容的教訓

系列:30 天用 Google AI 打造臺灣防災速報 App(Day 14/30) 第二週完成 AI 核心的四項功能:速報摘要、警報分級、問答、多語速報;...

鐵人賽 Build on Google AI DAY 12

Day 13|「震度 5 弱」怎麼翻成英文:讓速報說中、英、日、韓四種語言

系列:30 天用 Google AI 打造臺灣防災速報 App(Day 13/30) 在臺灣生活、工作和旅行的外籍人士很多,災害發生時,看不懂中文警報的人最...

鐵人賽 Claude AI DAY 15

Day 15 會員註冊與 password_hash()

圖書管理系統完成書籍的 CRUD 之後,接下來要面對的就是使用者。 要做借還書功能,系統必須先知道「是誰借了這本書」。因此,需要一套會員機制。今天先把「會員註冊...

鐵人賽 Build on Google AI DAY 28

Day 28 | 效能調校:Cloud Run 冷啟動 (Cold Start) 最佳化

大家好!歡迎來到「Build on Google AI」工程挑戰的第 28 天。 昨天,我們為系統裝上了嚴密的資安防護網,並興高采烈地將這套結合 ADK Wor...

鐵人賽 Build on Google AI DAY 20

Day 20: 新手導航系統:科技 MBTI 測驗與 RPG 實境闖關路線自動生成

🛠️ AI Studio × Vibe Coding 30 天:技術大會痛點擊破百寶箱 5 大分類 × 6 大情境,共 30 天,且每天都是「獨立」的微型實作(...

鐵人賽 Security DAY 0

Day 14|使用 ls 探索目錄內容

前言前幾天學習了許多 Linux 基礎指令,例如cat grep diff不過這些指令都有一個共同點 我們已經知道要操作哪個檔案。但在真實環境中,系統通常不會直...

鐵人賽 IT Operation DAY 29

Day 29|在使用者回報前看見異常:Prometheus、Grafana、Exporter 與 Alertmanager 告警

今天是第三條主線「可以切換、也可以復原的服務」的收尾。Day19~28 已經依序建立服務身分、PostgreSQL 高可用性、固定服務入口、公開 HTTPS 與...

鐵人賽 Vibe Coding DAY 15

【Day15】我抱怨過的每件事,都變成一條測試

說來掩面。上班當 PM 的時候,我都記得要幫開發同事排單元測試跟 SIT 的時間,自己做的時候卻把這段忘得一乾二淨,想說在我手機上都跑得動了,有什麼不夠的嗎?...

鐵人賽 自我挑戰組 DAY 8

【Day 15】高管一眼抓重點:打造現代戰情室 KPI 焦點卡、微線圖(Sparkline)與紅綠燈警示

在商業戰情室的頂部或左側,高階主管(C-Level)打開螢幕的第一秒鐘,通常只想確認三件事: 關鍵數字是多少?(例如:本季總營收是否達到 5,000 萬?) 走...

鐵人賽 Build on Google AI DAY 16

Day 16 | 心靈判官:什麼是 AI Agent?

(看到最後就會知道為什麼是這張圖了 XDD) 過去十五天,我們把 LLM 底層的運作機制大概講了一遍。我相信底層還有很多細節,技術也會持續進步,很快我們現有的...

鐵人賽 AI 自動化 DAY 17

Day17 走出戶外導覽的裝備系列3-緊急救護

走路難免會受到傷害,就以常見的抽筋為例,雖然沒有外傷,但痛起來可是會受不了,我們在此跟AI下提示詞:「抽筋的發生原因,會在哪些狀況下誘發?」得到的回覆是:「抽筋...

鐵人賽 Software Development DAY 12

Day 15|權限:誰能按哪顆按鈕——我們改了三次

權限是我自己認證當年沒做好的部分之一:改了三次,每次都花了真實的時間,每次都只對了一半。有趣的是,把三次改版排開來看,它剛好走完了權限系統的經典演化路徑——所以...

鐵人賽 Build on Google AI DAY 16

Day 16|讓網站可以搜尋 Google Maps 店家

前幾天已經完成網站的基本 UI 和操作流程,輸入店家名稱之後也可以進入報告頁面。不過前面的功能其實還是用「模擬資料」來呈現,網站並沒有真的去取得 Google...

鐵人賽 Software Development DAY 12

Day 14|主播與營運後台:沒有一個叫「後台」的東西

前面十三天寫的是交易的骨架:留言進來、庫存卡住、錢收好、貨出門。這章換一個視角——站在直播現場的人,看到的是什麼。講「後台」之前先劇透結論:這個系統裡沒有一個叫...

鐵人賽 Security DAY 0

Day 13|使用 diff 比較檔案差異找出真正的 Flag

前言前一天學習了 Linux 的文字搜尋工具 grep透過關鍵字搜尋,我們可以從大量資料中快速找到需要的內容。今天則要認識另一個非常實用的工具 diff當兩個檔...

鐵人賽 Software Development DAY 15

Day 15|CRUD:修改與刪除

上一篇完成了 CRUD 的前兩個: POST /tasks → 新增GET /tasks → 查全部GET /tasks/{id} → 查其中一筆 今天要把剩下...

鐵人賽 Vibe Coding DAY 23

第二件法寶 Project Scaffold:能 build、能測、有 lint 的乾淨專案,一鍵生出來 - Day 22

原始開發紀錄:Agent Build Log — Episode 025 這個系列改寫自我部落格上的 Agent Build Log,那是我每天邊做邊寫的開發紀...

鐵人賽 Vibe Coding DAY 16

Day 16:【AI 判斷】AI 說「這個做不到」,真的做不到嗎?

美術素材導入到一半,我遇到一個很小、卻很煩的問題。遊戲畫面上的: ⚔ 🛡 💀 ⚡ 🏆 這幾個 emoji,在 Godot 編輯器裡看起來正常,匯出成網頁版之後...

鐵人賽 JavaScript DAY 14

【Day 15】換包裝別把真兇給滅口!用 Exception Chaining 保留第一案發現場

在真實的多層架構開發(Controller → Service → DAO)中,你一定會遇到這樣的困境:最底層的保險庫管理員(DAO)跟資料庫連線失敗,丟出了一...

鐵人賽 Modern Web DAY 15
Rive 的一些進階主題 系列 第 15 篇

[Day 15] 實務建議 2:音樂音效

通常用 Rive 一陣子後,就會有人開始說「啊我們來加個聲音試試看好了」,畢竟無論是用 Rive 做 hero, icon, 還是遊戲什麼的,加上一點聲音會讓整...