軟體開發筆記

Git

Android 專案設定 Git Submodules

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

使用 Google Cloud Platform 翻新系統架構

前言 最初只是想重構蔬果行情站的應用程式, 目前專案是採用非正規的架構寫出, 而且相當小眾,壞了很難追到問題的原因; 近期較熟悉官方推薦的方式, 也對於這個專案有些新想法,就決定把它砍掉重練。 而前陣子 Google I/O 宣布: Goo...
PHP

Visual Studio Code 設定 PHP Debug

前言 以往寫 Java 或 C# 時,IDE 會提供開發者除錯的功能, 其中我最頻繁使用的是斷點 (Breakpoints), 點幾下就可以知道程式流程及變數內容,相當方便。 但寫 PHP 時,我除錯的方法是印出變數值, 相較之下根本還停留...
Android

TextView 總是對不齊 Drawable

前言 不曉得你們有沒有遇過這種狀況: <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="c...
網路應用

Firebase Cloud Messaging 在背景收訊息

前陣子將推播服務換成 Firebase, 但發現一個問題:只有在前景時才收得到訊息。 官方文件指出: App behavior when receiving messages that include both notification a...
Arduino

DFRobot Arduino 入門套件開箱

前言 去年一直在嚷著要學 Arduino,但遲遲未去接觸; 前陣子熱衷養魚時突然發想: 如果可以遠端監測、控制我的魚缸就好了。 而 Arduino 似乎可以滿足我的需求, 所以就手滑買了一組入門套件。 Arduino 套件百家爭鳴, 選擇 ...
軟體開發

Pair Programming 心得

前言 我在工作的專案中只要 Deadline 沒有很緊, 或者是程式要重構時, 我跟另一位工程師就會採用Pair Programming 進行開發, 簡單來說就是:同時間一人負責寫,另一人負責檢查及提問, 透過此開發方式提高程式碼的品質。
Android

玩遊戲學廣告配置

前言 我對手機廣告的體驗一直不是很好, 其中最糟糕的體驗莫過於蘋果新聞的網頁, 一進去先跳個全版廣告不說, 有時還關不太掉,常因此而惱怒。 最近看到朋友在玩一款遊戲,名稱是:叔怪 由於題材很有趣,我也跟著玩了, 在遊玩的過程中,我發現我完全...
Google Cloud Platform

Google Compute Engine 使用心得

前言 原本使用的主機是一年幾百塊的 share hosting, 用了兩年多,也沒出現甚麼太嚴重的問題, 我的需求就是架個部落格, 以及跑幾支簡單的網路程式。 ──直到某天我將蔬果行情站改版後, 才驚覺大事不妙。 引爆點 早期版本的 app...
Android

[Android] FAB給我的壞體驗

前言 最近在重構蔬果行情站的程式碼, 由於是將整個架構換掉,*註1 想說都要大改了,索性連layout也一起修改。 layout中我最不滿意的地方是功能選單;
PHP

CodeIgniter 在 Server 上無法正確執行 Cron Job

狀況 使用 cron job 執行 CodeIgniter 的檔案, 總是跑出 default controller 的內容。 官方文件的 cli 使用方式: $ php /CI路徑/index.php controller名稱 funct...
網路應用

OpenShift使用不含www的網址

問題 在OpenShift要使用CNAME的形式綁域名, 該如何設定,才能以不含www的網址當作預設的網址? 解答 過程中以 做為範例, 最終結果是換成 。
Android

[Android] 透明背景被填滿黑色

問題 我的透明按鈕不知為何, 在某支手機上看起來被填滿了黑色。  在其他手機上顯示的黑色按鈕 我手機上顯示的透明按鈕 解答
PHP

CodeIgniter中helper與library的差異

前言 最近使用CodeIgniter開發時, 發現不同controller中會用到同一支function, 難道每個controller都要加入這支function嗎── 當然不是。
Linux

Linux進行不輸入密碼的SSH連線

前言 一般SSH連線都會要求輸入密碼,若有自動SSH連線的需求, 則目標(被連者)需要建置免輸入密碼的設定。 案例 本地端使用Cron Job透過SSH連線對雲端伺服器進行同步資料(rsync)。 會有這個需求是因為有更新頻繁的網站, 大約...
Amazon Web Services

[AWS] Ubuntu安裝s3fs流程

前言 S3FS是將S3做為掛載硬碟使用的檔案系統(FUSE-based), 透過S3FS可以將S3當作本地端的硬碟來進行讀寫, 因此可以用原生的方式來存取檔案。 這陣子在做需要大量儲存空間的專案,使用S3存放檔案; AWS雖然有提供SDK,...
Amazon Web Services

[AWS] 使用S3的PHP SDK刪除資料夾

首先要先說明──S3沒有資料夾的概念。 在S3裡面可以看到分層, 其實只是檔名中的/以分層來呈現。 我最先找到的資料是: 使用get_object_list()指定prefix(前綴字,即假想的資料夾), 再用foreach去跑delete...
Amazon Web Services

[AWS] EC2使用phpMyAdmin管理RDS

在學會使用EC2連接RDS後, 直接下command來管理RDS似乎有點累人; 沒關係,那就來安裝phpMyAdmin。
Amazon Web Services

[AWS] EC2連接RDS

申請完EC2跟RDS的兩個服務後, 接下來要從主機連資料庫,該如何進行? 首先要設定RDS的Security Group, 在Inbound中新增規則:Port Range為3306(RDS的預設port),Source為EC2的Priva...
網路應用

BigDump 匯入大於上傳限制的資料庫

前言 最近有個網站要大開刀,想說先複製到其它主機來亂搞, 於是就將資料庫匯出,要傳到其他主機時, 發現資料庫大於上傳大小限制,匯不進去……
Joomla

Jumi – 置入自訂程式碼的Joomla套件

前言: 前陣子架Joomla時有個需求── 要在頁面演示資料庫的CRUD,且視覺上要美觀; 其實就是小型的會員資料庫(登錄資料、修改登錄資料、查詢……等)加上套CSS。 Joomla有會員的功能,我的想法是另開一個表格放資料, 用Jooml...
Linux

Ubuntu安裝FTP伺服器

文章上半部為Ubuntu安裝vsftpd的流程, AWS後台的設定可直接瀏覽文章底部內容。 首先要安裝FTP的程式(vsftpd): $ sudo apt-get install vsftpd 安裝好後,修改設定檔$ sudo vi /et...
Android

[Android] ImageView的getWidth()跟getHeight()回傳值為0

這個問題的原因通常是View尚未準備好, 必須等到所有View都讀取完畢,return值才會不等於0。 該如何解決呢?有兩種作法: 一、等讀取完畢再去取值 在Activity覆寫下列函式: @Override public void onW...
網路應用

使用SourceTree同步OpenShift

SourceTree在Clone時碰到一個問題, 似乎是key沒有吃進去導致無法Clone在OpenShift上的檔案。
WordPress

zBench佈景主題正體中文語系檔發佈

最近白開水的佈景換成了:zBench,跟之前一樣是簡單的黑白配色,不過容量小了許多, 沒什麼圖片,僅僅幾張小ICON而已;佈景外觀的設計幾乎都是由HTML&CSS來完成。 這種簡潔的版面相當合我胃口,可惜語系檔獨缺繁中語系, 所以就手癢自己...