軟體開發筆記

軟體開發

腳踏車抵家的系統設計

前言 在確認了產品需求之後,接下來就會走到開發實作的階段,這個階段第一個面臨的問題就是:我的系統要怎麼處理比較好?在回答這問題之前,必須盤點手上所有的資源,尤其要注意這些資源的限制,因為會攸關到可行性。 產品需求見下文: 資源清單 Orac...
CI/CD

App Center 無法成功建置 Java 11 的 Android 專案

這幾天在升級尋車小幫手的專案設定,結果升完導致我在 App Center 的 CI/CD 跑不過,這感覺還滿正常的,畢竟升版本對 CI/CD 絕對是一件大事,不過我的專案把 Java 1.8 換 Java 11 了,怎麼 App Cente...
CI/CD

如何避免 Travis CI timeout 中斷任務?

我們家是用 Travis CI 的 Core - 5 Concurrent Builds 方案,一直以來我都沒什麼使用上的問題,直到我跑了一個執行很久的 task,才發現它 10 分鐘內沒印出任何 log 會自動幫我中斷任務。 原因 會被中...
軟體開發

LiveKit – 最容易上手的 WebRTC 開源專案

我第一次接觸 WebRTC 是在 2019 年,當時要在手機實作視訊、音訊通話功能,一開始選用 Google 官方的解決方案,過程非常痛苦,因為文件極少,且手機原生的相關討論也不夠多。後來雖成功實作這個功能,但自己對於這個領域的知識不夠充足,出問題要 debug 又是另一個難關。
網路應用

如何比較、挑選適合自己的 VPS?

真正會影響我們使用狀況的資訊不會在 VPS 的價目表寫出來,通常是在使用後,我們透過一些工具去跑分數才會清楚。我們想在購買前知道這些資訊,但這些資訊是使用、測試後才有辦法了解。
Linux

如果免費的 Heroku 開源專案存在

在開發個人專案時,我喜愛使用讓我專注在寫程式的解決方案,如:Heroku、GAE 或 Firebase 等服務。在享有便捷服務時,額外帶來的是昂貴的使用成本;對於一名免費仔來說,這無疑是巨大的打擊;因此我一直在期盼上述服務的開源專案出現,而這次要介紹的是:最接近 Heroku 的替代品,CapRover。
Linux

懶人套件架出高效能 WordPress 網站

每次架站的時候,有些工作是一做再做的,例如:建置網站運行的環境、域名綁定、調伺服器參數······等,這些重複的瑣事常常耗掉我半個下午;尤其是伺服器設定,有時調完還只是會動而已,還不到最高效能,如果這些事情可以被簡化,那不是很美好嗎?
Linux

我還是離開了 Cloudways

Cloudways 用兩年了,最近發現網站越來越慢,當我嘗試連進去機器除錯,卻發現無法取得最高權限。趁著在年假期間,搜尋完各家主機商的比較資訊後,便開始處理網站搬家事宜。
Linux

如何在 VPS 安裝免費的 cPanel 控制台?

HestiaCP 是一套開放原始碼的控制台,凡舉:域名管理、DNS 設定、資料庫建立⋯⋯等都可以在後台設定,常用的 cPanel 功能都能在這裡找到。
WordPress

WordPress 最輕鬆的搬家方法

最近搬了三個網站,都是使用 Duplicator 這套 WordPress 外掛來搬家。除了簡易使用,它也提供轉移前、後的檢查以及問題排除的功能;像我就有被抓到資料庫編碼的問題,幸好這套外掛有提供修正的功能,讓我省下不少時間,。
Android

Pixel 手機如何刷機、降版?

自從我將 Pixel 3a 升上 Android 12 後,耗電有感提升,於是將手機刷回 11,最後發現烏龍一場,原來是我手機電池膨脹。不管怎樣,來記錄一下當初的降版方法吧! 前置作業 安裝 ADB 開始刷機 上列官方網站其實有提供不同的版...
Firebase

Cloud Functions for Firebase 跟 Google Cloud Functions 差在哪?

不知道大家有沒有注意過:Cloud Functions 除了出現在 Google Clould 裡頭,在 Firebase 也看得到它的身影,一樣的服務為何要放在兩個地方?還有,它們倆真的一樣嗎? 當然,第一個問題只有官方知道,我也只是猜測...
Flutter

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 13 ~ 14

前言 邏輯、流程的部分都已經處理掉了,接下來應該是把畫面跟定義好的程式串起來就會動了;課程也即將進入尾聲。 筆記 Flutter TDD Clean Architecture Course – Dependency Injection 這集...
Flutter

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 10 ~ 12

前言 這幾集就是在講 Flutter 特有的 BLoC,我們已經跨入 presentation layer 了,這邊會開始碰到 UI 背後的邏輯。 筆記 Flutter TDD Clean Architecture Course – Blo...
Flutter

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 7 ~ 9

前言 這部分也在講 data layer 的內容,不過會更專注在 data source 裡面的東西。 筆記 Flutter TDD Clean Architecture Course – Network Info 這集一開始導入一個 3r...
Flutter

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 4 ~ 6

前言 在課程 1 ~ 3 集學習了 Clean Architecture domain layer 的測試與實作,在這篇筆記中會著重在 data layer 的部分。 筆記 Flutter TDD Clean Architecture Co...
Flutter

使用 TDD + Clean Architecture 開發 Flutter 專案課程筆記 1 ~ 3

前言 以前專職開發 Android 專案時,我喜愛 Clean Architecture + MVVM 架構當作基本配置;TDD 一直是我很想精通的一個技能,但礙於各種因素,正式工作中我一向是在最後階段才補上測試。這次學習 Flutter ...
各類分享

完整移除 Comodo 防火牆解決無法上網問題

前言 大約在 2017 年裝了 Comodo 的防火牆,幾年使用下來也沒出甚麼問題,但最近會在開機後發生異常,說是防火牆無法正常啟動。這個問題也造成我無法上網,非常困擾。 釐清問題 因為 Windows 10 之前有出過更新後無法上網的問題...
Android

防疫資訊站 – 在口罩地圖之後

前言 前陣子我媽打給我,說:她不會用實聯制掃描而被店員唸了,後來每次進店都放棄用手機掃描,改用手寫登記。我不知道有多少長輩有碰到這個問題,但我覺得需要有人來解決它。剛好 g0v 有人在分享最新的疫情資料,就花了一個週末把口罩地圖改版了。 新...
Android

教導年長者使用平板電腦

前言 我媽前陣子嚷著想要用電腦,就我有印象以來,這狀況持續了十年以上,每隔一段時間,我媽就會說要學電腦,但每次教完,大約一週內就會對電腦失去興趣。 使用者背景 65 歲傳統家庭主婦國小學歷容易放棄,害怕失敗及未知的問題記憶力開始退化不擅長使...
Amazon Web Services

OkHttp 綁定 AWS SSL 憑證

前言 前陣子印尼員工遭遇了手機無法連到 AWS EC2 主機的問題,請對方開啟網頁瀏覽器連自家 API,網址列上出現了驚嘆號,懷疑是自家主機不被該裝置信任,出了一版綁定憑證 (SSL pinning) 的版本,果然順利連到了主機。 延伸問題...
Android

口罩地圖開發思路

我要查詢附近特約藥局時,發現民間做的口罩地圖服務都被流量灌爆,甚至有人吃了一張 Google 的 60 萬元帳單。這件事應該是要被解決的,於是興起動手做一個的想法。
Linux

Ubuntu 搭配 Nginx 安裝 Let’s Encrypt Wildcard SSL

前言 去年 Let's Encrypt 開放申請 Wildcard SSL, 剛好最近有個域名尚未使用 SSL, 趁機記錄一下安裝過程。 安裝流程 本次安裝的環境如下: Ubuntu LTS 16.04、Nginx 並使用 CloudFla...
Git

Android 專案設定 Git Submodules

前言 目前有數個專案使用了共同的核心架構, 一開始是每個專案都有一份相同的程式碼。 有天驚覺: 若哪天核心程式碼做了修改, 那麼每個專案都要跟著做調整; 一兩個還好,若是要修改數十個專案, 這肯定會是一場災難。 理想的作法是只要改一次,更改...
Android

蔬果行情站 2.0

前言 前陣子完成架構的升級後,接下來就是蔬果行情站本體的改造,主要是開發語言的更換,以及程式架構的調整;除了上述提到部分,我認為還有兩點相當重要: 舊版缺點的改善。 新版功能的開發方向。 舊版缺點 預測零售價不準 這點我認為是最嚴重的,因為...