發表文章

AI Workflow整合的第二選項 : Dify

在n8n之外,你還有其他選擇,Dify。他也是眾多開源開發者熱愛的選項。先不用急著被n8n綁架,因為Dify也能在本地端安裝使用。 讓我們快速看一下整合流程: 根據 Dify 官方文檔,在 Windows 環境下從**原始碼(Source Code)**開始安裝 Dify,主要分為準備環境、啟動中間件、配置後端以及配置前端四個大步驟。 以下是為你整理的中文詳細流程: 一、 環境準備(Prerequisites) 在開始之前,請確保你的 Windows 電腦滿足以下要求: 系統硬體 :CPU >= 2 Core, RAM >= 4 GiB。 Docker Desktop :必須安裝並啟用 WSL 2 模式 。 Python 環境 :建議安裝 Python 3.10+。 Node.js :版本 v22 (LTS) 或更高。 Git :用於複製程式碼。 工具軟體 : uv :用於管理 Python 依賴(官方推薦)。 PNPM :用於管理前端依賴( npm i -g pnpm )。 二、 複製原始碼與啟動中間件 Dify 的核心數據存儲(PostgreSQL, Redis 等)是透過 Docker 運行的。 複製倉庫 : 打開終端機(PowerShell 或 Git Bash),執行: Bash git clone https://github.com/langgenius/dify.git cd dify 啟動中間件 : 進入 docker 目錄並啟動必要的基礎服務: Bash cd docker cp middleware.env.example middleware.env # 使用 Docker 啟動資料庫與向量資料庫 docker compose -f docker-compose.middleware.yaml --profile postgresql --profile weaviate -p dify up -d 三、 後端服務配置(API 與 Worker) 進入 API 目錄 : Bash cd ../api 配置環境變數 : 複製並重新命名配置檔: cp .env.example .env 生成 SECRET_KEY :在 .env 中找到 SECRET_KEY ,隨機填入一串長字串。 安裝 Python 依賴 (使用 uv)...

AI時代,開發人員何去何從?

以下我將從四個核心維度,為你詳細解析「圖文 AI 時代對軟體開發人員的影響」,並附上對應的示意圖。 第 1 部份:從「代碼撰寫者」到「AI 協作指揮官」 核心影響:工作型態的轉變 過去,軟體開發人員的大部分時間花在手寫樣板代碼(Boilerplate)、除錯(Debugging)和查找 API 文檔。AI 時代,Copilot(如 GitHub Copilot, Cursor)和大型語言模型(LLM)承擔了這些重複性工作。 開發者不再僅僅是「代碼撰寫者」,而是轉變為「AI 協作指揮官」。他們的工作從「如何寫出這段代碼」轉向「如何引導 AI 產生正確的代碼,並將其整合到系統中」。 影響點: 速度提升: 樣板代碼和簡單函式的編寫速度提升 10 倍以上。 專注於邏輯: 開發者可以將更多精力集中在系統架構、業務邏輯和用戶體驗上。 新的技能: 「提示工程(Prompt Engineering for Developers)」成為必備技能。 第 2 部份:技能樹的劇烈擴張——從全棧到「全能」 核心影響:必備技能的重定義 傳統的全棧開發(Front-end + Back-end + DevOps)已不足以應對 AI 時代的挑戰。開發者的技能樹正在向外劇烈擴張。 現在,軟體人員需要理解 AI Agent 的概念、學會使用 RAG(檢索增強生成)來連接企業數據,並且能夠整合各種圖文生成 API(如 OpenAI, Midjourney, Stable Diffusion)。這不僅是多學一種語言,而是多學一個完全不同的技術範式。 影響點: 深度與廣度: 必須在傳統軟體工程與 AI 應用之間取得平衡。 快速學習: AI 技術日新月異,需要具備極強的自我更新能力。 跨領域整合: 理解業務需求並將其轉化為 AI 可執行的任務。 第 3 部份:團隊編制縮張與「一人公司」的可能 核心影響:團隊運作與專業邊界的模糊 AI 的圖文生成能力大增,模糊了開發者、設計師(UI/UX)和行銷人員之間的專業邊界。開發者現在可以使用 AI 快速生成高保真的原型圖(Prototype),甚至生成初步的行銷素材。 這導致了兩個方向的影響:一是小型團隊可以利用 AI 完成過去需要大型團隊才能做到的事情,出現「一人公司」或極小型的「Agent-powered Team」;二是大型企業需要重新設計工作流程,以...

[IOS] 2018年Iphone的 螢幕 尺寸 解析度 大集合

圖片
最近小弟也開始攥寫一些Iphone App,目標是農曆年前,可以申請App上架啊! 在攥寫過程中,我發現Iphone的確誘人的地方是,硬體設備始終就是那幾部,被好好掌握著,也不會有偷料導致程式讀不到值而導致系統crash...,而App開發最擾人的其實還有螢幕解析度、螢幕尺寸....在這方面Apple到是挺單純的。 2018年,Apple也推出Iphone Xs/XR/Xs Max系列的大螢幕Iphone,各位,差不多也跟上了螢幕解析的支援。在Iphone世界的確,你沒設定好是否支援該部手機的解析圖片,基本上Iphone則選擇讓你不顯示,或者你也許有能力可以採程式動態取得螢幕最新的解析圖片? 總之,對我這菜鳥而言,實在有點麻煩,因為在Xcode的Launch Image頁面,並沒有直接明列解析度啊...我只好自己try and error,去抓出各個方格需要的解析度。 廢話不多說,跟各位分享,小弟特地為Iphone Xs/XR/Xs Max更新了IOS App開發所需要準備的解析度! 歡迎大家使用,如需要分享出去,再煩請備明出處即可。

[Wordpress] 使用sublime+SFTP開發Wordpress

圖片
起初,我都是使用NetBean來開發wordpress,同時上面也有版本控管的工具,以及同步sftp的功能,但是她實在是太肥大了,一陣子後,慢得我不要不要的~ 後來因為在OSX上習慣用Sublime看code,慢慢地開始覺得,Sublime的輕便跟擴充性,於是花了點時間研究一下,如何在Sublime搭配sftp同步功能,去開發Wordpress。 好的,第一步,我就先預設你已經裝好了sublime,於是,在什麼都沒有的情況下,會跟我是一樣的環境。 一、先把「Console」打開,方便後續你可以看到發生了什麼事?   1. 來到畫面的左下角,會看到這個照片的訊息,點一下。  2. 點一下後,就會跳出console的選項,點進去就打開console畫面囉! 二、打開「Package Control」,開始啟動sublime的Package吧!    開啟 Package Control 三、使用「Install Package」去尋找想安裝的Package...    點入後,在同一個位置的方框裡面,就可以直接搜尋你想要的Package名稱了 四、安裝SFTP,我使用來管理wordpress的package是SFTP,目前使用上是挺方便的!      安裝中    安裝完成,會出現SFTP的Readme資訊,以及可以看到我們在第一步時開啟的Console資訊顯示,完成安裝。 五、重頭戲來,開始設定Sublime的SFTP,我們先假設你有一個遠端的sftp server,並且將資料都放在上面了,所以~目標是把資料下載回來電腦內。    1. 先開啟一個空的資料夾,準備來存放sftp的設定檔跟遠端的資料,從Open開始吧!      2. 我把資料夾名稱設為 proj ,你可以依照你需要的去設定,只管打開它吧!    3. 打開之後的畫面是如下,資料夾內只有產生了幾個檔案... 但都無關緊要 XXD    4. 來設定這個資料夾對應的SFTP設定檔吧!按下Map to Re...

[OS X] 用磁碟工具製作ISO檔

圖片
這陣子剛好需要搭建一些開發用的windows 7環境,所以簡單的從官方抓了一些ISO檔,突然間腦袋不知道是怎麼打結了,立馬就把這些OS的檔案們抓出來,利用MAC本身系統內建的磁碟工具程式來試試看能不能製作成ISO檔。 研究之後,發現MAC的工具其實很齊全啊...很少需要另外再加購軟體,就可以橫行天下了。 我假設大家已經知道磁碟工具程式要從哪裡打開。 ▼ 打開磁碟工具後,選擇左上角選單的『檔案』->『新增映像檔』->『來自檔案夾的映像檔』 ▼ 選擇『來自檔案夾的映像檔』之後,會挑出選擇資料夾的小視窗,你就挑選你要製作成映像檔的資料夾吧。 ▼ 接著,馬上就可以選擇要儲存映像檔的地方。 ▼ 注意一下映像檔的檔名吧~小心自己找不到檔案 :P ▼ 等待&製作中.... ▼ 2012年的MAC air大約花了20分鐘。 ▼ 產生出來的win7.iso副檔名還是dmg,不過仍然可以使用。 ▼ 我試著用Parallels去讀取這個ISO的OS資料。 ▼ 果然抓到Windows7的資訊了。 ▼ 進入安裝介面。 挺不錯的,MAC的OS真是越用越喜歡。

[IOS] Framework這一檔事, NS_DEPRECATED/NS_AVAILABLE

圖片
這陣子幫忙正在創業中的朋友,嘗試來寫個IOS App,莫名的感到輕鬆而且興奮,我們可以開另一篇來討論Android和IOS的差異。 為什麼會看到Framework的資料? 雖然我還搞不清楚method/function,不過有問題就要往上扒,在撰寫BLE App的同時,先是引用了Apple的範例程式,為求速成,直接把老舊的Objective-C Example拿出來修整。 一開始還真是不太懂他的語法,硬幹了兩天,還是回頭花半小時,把基礎資料看完... 但是,看完之後~完全覺得沒長進。還是繼續回到程式裡頭。對我而言,看code遠比看Documents快... 於是~我就將Framework的Head叫出來看,順便看看柱姊,喔不~是註解... 發現一件很重要的事~Apple的Framework裡頭,每個Method的最尾端,說明了這個Method從第幾版到第幾版可以使用,又或者在第幾版已經停止使用了。 一時間~突然覺得Apple好Sweet~~~~~ 先說明,NS_DEPRECATED的部分,是在描述這個Method被啟用/停用的版本。 *** 而後面的第一個數字參數跟第二個參數,分別是代表在MAC OS時,被引入的時間跟停止使用的版本。 *** 第三個參數跟第四個參數,則是在說明,在IOS上,被引用和被停止使用的版本。  NS_AVAILABLE則是更簡單了,就是仍在使用中的Method,別且註明是從第幾個版本開始使用。如果有兩個參數,前面的那一個參數必定是代表MAC OS開始支援的版本,而後面則是代表著IOS開始支援的版本。 看完之後~深深覺得~我這不愛看Document的人(雖然常被逼著看Orz..),應該是會愛上IOS的開發吧?

[我的MAC Air] 2012年中,MAC Air SSD升級

圖片
因為有在拍照,所以硬碟很快就滿了,但前陣子剛好去了沖繩一個星期,照片整個塞爆了我的MAC Air,但照片整理又慢,還有一些照片想傳到Blogger裡面做記錄,就變得非得要把照片放在電腦裡。 接著,又遇到一些專案想要開發,在MAC Air上想安裝Xcode跟一些App,然後...然後硬碟就爆了~~~~Orz..App更新也動彈不得了。 就這樣,立馬下手了觀望很久的JetDrive 520 for 2012年中的MAC Air。 ▼ 24小時到貨真方便,隔天就到貨,還剛剛好在我出門前,被我堵到。 ▼ 開箱囉!!!好爽480G,快點來我這吧!!! 總覺得網路上,關於JetDrive的中文介紹真的很少,所以我一定要寫下來。 ▼ 整體包裝有點仿造Apple的風格,白色->簡單。 ▼ 拿出所有東西,有SSD 480G一隻,工具2隻,SSD外接盒*1,外接盒的傳輸線*1,外接盒的衣服*1,還有說明書.....但是說明書請各位可以不用看了,太簡單,根本沒有參考價值。 ▼ 就這樣,中文說明...而且是簡體字。 還不如參考Youtube的介紹 ▼ 首先,先把新的SSD硬碟放到外接盒。 ▼ 組合完成。 ▼ 放到電腦上備份,原本以為...可以用Time machine去備份。結果Time Machine備份的確是可以完成,但是它會把硬碟裡的系統備份成一個資料夾,根本就不是整個系統轉移.... 所以我只照了影片裡面的介紹,完成硬碟的格式化。 ▼ 不用再試這招,浪費時間。 最後,格式化完成後,我還是把硬碟接著,然後MAC Air重開機後,馬上按下 Command + R ,進入Recovery模式,創建提供的說明書跟影片都說,長按 option ,但是我試了很多次,都不會進入Recoevery模式。 Recovery模式,整個系統備份到新的SSD上,只需要10分鐘左右,我大約已經用掉110G的空間了,所以Recovery模式速度挺快的! ▼ 接著,迫不及待,把MAC Air給拆開。 ▼ MAC Air的螺絲...很小,就跟手機一樣...都是用這類規格的螺絲。 ▼ 開心呀~硬碟裝好後,開機~~~果然開始跑新的SSD裡面的...