How to Develop a Weather Forecasting Based Decision Making Strategy?

Weather forecasting may affect a decision making process. How is this process logic linked together? First of all, weather forecasting can create different weather factors in possibility percentage, and these factors can represent the different weather status. For example, based on rainfall and cloud fraction, there are sunny day, cloudy day, and rainy day. Meteorologists… Continue reading How to Develop a Weather Forecasting Based Decision Making Strategy?

“Content is the King” is Still Valid to Apply in Metaverse.

This week is the "on-metaverse" fashion show week for our company. Metaverse has been one of hot words in months since Facebook changed its name into Meta. My understanding of metaverse was we as users can access the contents in a "meta" space, and my identity may be brought with me to different metaverse. But… Continue reading “Content is the King” is Still Valid to Apply in Metaverse.

Weather Opinion: Different people may have different perspectives to differentiate the same weather

Two weeks ago, I had a presentation at TGA 2022 (Taiwan Geoscience Assembly) & Conference on Weather Analysis and Forecasting. The title was "Use Machine Learning to Classify Weather Opinions from WhatsApp Group: A Model Design and Evaluation for Raining Event Prediction". The term "Weather Opinion" is created for this research since the voice from… Continue reading Weather Opinion: Different people may have different perspectives to differentiate the same weather

Shopify Checkout to GA Ecommerce Report

My current project is using GA (Google Analytics) for tracking Shopify user behaviors. Although we setup the GA tracker, the GA Ecommerce report is still not showing properly, which means the “Product” and “Product Category” reports in Product Performance page are messed up by showing only (not set). Fortunately, Shopify checkout process has a Checkout… Continue reading Shopify Checkout to GA Ecommerce Report

RL Model Development Processes

Reinforcement learning (RL) is a branch of machine learning. As the word “reinforcement” saying, RL machine (agent) learns from the experiences. When the machine gets positive feedback from certain action to the environment, it will encourage the machine do the same action next time, vice versa. This post is talking about the processes, tips, and… Continue reading RL Model Development Processes

DVC and MLFlow for Creating a ML Pipeline

ML Pipeline When a machine learning (ML) project is scaled up, we may try different algorithms to improve the performance and serve different applications. In these process, some of processes might the same, such as data preprocessing for certain data source, and some are different, such as training algorithms. So we want to modularize different… Continue reading DVC and MLFlow for Creating a ML Pipeline

Backtesting – A Simulation of Trading Strategy

Since I started researching algorithm trading, "backtesting" is the most frequent related terminology coming from different resources. Why backtesting is so important that everyone is talking about? Backtesting is a practice to simulate your trading strategy on the historical data. It's just like fighter pilots' aviation training. Without the simulation practice, we will play with… Continue reading Backtesting – A Simulation of Trading Strategy

Algorithm Trading: How to Learn From Zero to Start

My background My current project requires me to develop a algorithm program to help the business investment. However, I never really developed a software to run trading algorithm before, though I watch our stock market in daily basis. While I am digging deeper in the algorithm trading field, I thinking there must be many others… Continue reading Algorithm Trading: How to Learn From Zero to Start

軟體測試簡介

軟體測試(Software testing)就是軟體能做到開發者對起初軟體功能的期待(expected design)。一個老師對學生進行測驗(testing)也是希望學生可以回答老師想要的成果,軟體測試也是類似的概念。有的老師對一張試卷的批改標準,當老師只要對的答案,不管計算過程,只要答案吻合老師的期待,這樣的測試稱為黑箱測試(black-box testing),若老師不僅要正確答案,並且會檢討計算過程,這樣的測試稱為白箱測試(white-box testing)。 隨著軟體專案的開發時間越長,軟體的規模所涵蓋的範圍也會越來越廣,因此隨著時間的增加,軟體測試所解觸到的面向也會越來越多。 軟體測試的時間維度 從軟體開發的時間維度來看,軟體開發初期是小部分的軟體程式功能的建置,在這個階段的測試會稱為Alpha測試(Alpha testing),多為軟體開發者進行個別功能的單元測試(Unit testing)。當軟體開發的時程越長,功能越複雜,所接觸到的介面越多,這時會進行功能與功能之間互動的整合測試(Integration testing)。在這個階段的軟體產品可能已經有較具體的功能與介面,可以藉由測試案例(Test cases / Test scenarios)來檢討軟體開發的功能是否符合預期。同時測試者可以包含除了開發團隊以外的公眾使用者來參與測試與使用,這時又稱Beta測試(Beta testing)。若以產品行銷的角度來分析,透過使用者的回饋來評估軟體是否達到預期的市場效果,這樣的測試又稱為市場測試。 小結: Alpha測試:軟體開發者對自己所開發的軟體進行的測試 Beta測試:邀請公眾使用者參與測試案例的回饋所進行的測試 軟體測試的空間維度 軟體的開發過程從小型的功能逐漸擴展到整個軟體系統,軟體測試所牽涉到面向也越會越加複雜: 單元測試:有品質的軟體程式通常是由許多的功能函式(function)組合而成,單元測試即是針對這每一個函式進行測試,預期每一個函式的運作結果都是開發者所期待的。 整合測試:當每一個函式運作得當,我們進一步預期在功能之間的連結是和期待一致的。所謂的一致,可能是資訊的傳遞或是頁面的轉換等等,確保更大的軟體功能運作得當。 系統測試:當整個軟體的運作在實際的使用環境中時,會牽涉到的層面會更加廣泛,也因此會進行更多從面的測試如下圖所示: 除了功能性測試(即上述單元測試與整合測試),與測試管理(此議題於之後談到“如何管理與整合測試與開發”)以外,以下為各面向的簡介: 使用者經驗測試(User Experience Testing):透過使用者實際使用軟體產品的經驗回饋,反省軟體功能與介面的設計是否流暢。 兼容性測試(Compatibility Testing):了解軟體產品是否可以在預期的環境上運作,並且介面顯示得當。軟體可能被預期要同時在Linux以及Windows作業系統上被執行,即為環境的兼容性測試。顯示界面可能同時要提供桌上型電腦以及手持行動裝置呈現,是否有反映式設計(Responsive design)。 效能與壓力測試(Performance & Load Testing):當軟體的使用者增加,資料的運算量也增加,在預期的使用量下,軟體產品是否能夠提供預期的表現。 安全性測試(Security Testing):當軟體使用者可能對軟體產品有非預期的使用行為,軟體是否可以偵測並且提供適當的回應機制。 因為軟體產品牽涉到的層面與軟體產品開發息息相關,因此在進行軟體測試時,測試人員對軟體產品的熟悉程度必須有一定的了解。 軟體測試團隊的組成 由於進行軟體測試必須對軟體產品有所掌握,除了工程面向以外,產品設計也需要被考慮到。”最理想的狀況“是整個產品開發團隊都有測試觀念,從軟體的設計開發初期就導入測試案例執行。在一般最精簡的團隊中,為了涵蓋工程面向的單元測試與整合測試,需要一名能掌握軟體產品程式語言的測試工程師(也可以由產品工程師兼任)。為了掌握產品設計所涵蓋的使用者經驗以及使用環境與效能測試,需要一名能掌握產品設計的產品分析師(或是由產品經理兼任)。