學習紀錄

Every article that are related with “Learning” will be in this category.

Flutter – StreamBuilder 邏輯與應用情境

Widget 邏輯 – 就記住一句話 The StreamBuilder widget connects to a Stream and asks Flutter to rebuild every time it receives an event using the given builder() function.也就是說,每次收到新的 async 通知都會 rebuild 一次。(根據 builder function 行動。) 因此 只要有需要「即時性」更新畫面、有所反應,我們就會使用到 StreamBuilder。 小故事 和各位分享一個小故事,我曾聽聞 StreamBuilder 用在 Authentication。當下我思索了腦中 Authentication 的結構模樣,實在想不出為什麼身份驗證需要透過 StreamBuilder 這等即時性驗證的東西來完成。 透過 http request 也可以實現 Authentication 啊?只要存取 Client Session 就可以知道使用者是否為登入狀態。 …

Flutter – StreamBuilder 邏輯與應用情境 Read More »

Llama 2 調研!文章解析 – 透過 CPU 運行 Llama2 模型?!

原文章 標題:構建能夠使用 CPU 運行的 MetaAI LlaMA2 中文大模型 網址:https://zhuanlan.zhihu.com/p/645426799 技術分析 前幾天和老師聊到 Meta 最新出的 Llama2 模型,老師就請我做一個 Colab 的實驗,結果我發現 Free 版本的 Colab 資源根本不夠用來運行 Llama2 模型,結果老師就丟了一篇文章還影片給我,問我為什麼別人可以。 於是,這篇文章就誕生了。 我把這篇文章丟給 ChatGPT,問他他用了哪些技術,為什麼可以降低跑模型的資源使用量,然後得到了一個技術名詞: 「知識蒸餾(Knowledge Distillation)」 知識蒸餾(Knowledge Distillation) 「知識蒸餾」是一種模型壓縮技術,其中一個大的、準確的模型(被稱為教師模型)被用來訓練一個較小的模型(被稱為學生模型)。 學生模型不僅學習從數據中得到的標籤,還學習教師模型的輸出。 這樣可以使學生模型達到與教師模型相似的性能,但模型大小和計算需求卻大大降低。 軟標籤 在知識蒸餾的過程中,學生模型不僅學習原始數據的標籤,還學習教師模型的預測結果。 這種學習過程通常涉及到使用「軟標籤」,這些標籤反映了教師模型對每個類別的信心水平,而不僅僅是最可能的類別。 這種方式提供了更多的信息,有助於學生模型學習更豐富的表示。 溫度縮放 知識蒸餾還可能涉及到「溫度縮放」,這是一種調整軟標籤的技術。 通過增加「溫度」參數,可以使軟標籤的分佈變得更加平滑,這有助於學生模型學習更多的信息。 訓練過程 在訓練學生模型時,使用了一種結合了軟標籤損失和硬標籤損失的損失函數。 這種方法允許學生模型同時學習教師模型的知識和原始數據的標籤。

AppSheet Automation Main Component Tutorial

快速帶你了解 AppSheet Automaiton 有哪些主要的 Component!

快速帶你了解 AppSheet Automation 有哪些主要的 Component! 前言 AppSheet Automation 是一個強大的自動化工具,能夠模仿人類在處理事務時的行為,提供更高效和準確的結果。 本文將說明 AppSheet Automation 有哪些主要的 Component。 故事! 我希望大家可以把兩個目標放在心中! 第一個要跟大家分享的,是我其實很希望可以將工作的內容分享給別人(沒有保密資訊啦哈哈)。一部分的原因是,可以和別人共享資訊,一起學習,另一個是讓家人知道自己在做什麼,不至於擔心。因此,所有文章的第一個短期目標,就是能夠透過 Email 通知其他人 Google Sheet 中更新了哪些資訊! 第二個要跟大家分享的,是公司其實有很多的學員、客戶,而公司內部其實會不定時的更新一些最新的資訊。後來老闆(也就是老師)希望把內部更新的這些資訊,一但更新了,可以一同通知想收到通知的人,一起跟上最新的資訊!因此,所有文章的首要目標,就是讓大家能夠做出一個可以更新資訊,就發送通知給擁有這個 App 其他使用者,就像是 Line 有新訊息會跳通知一樣。 主要的 Componenet Bot Bot是AppSheet自動化的核心組件,它定義了AppSheet自動執行的規則。通過設定Bot,你可以根據特定的條件和事件觸發相應的操作,實現自動化。 例如,你可以設定Bot在特定時間或數據更新時執行相應的任務和行動,如發送電子郵件或更新表格條目。 Event Event是用於識別數據變化或計劃的組件,它是觸發Bot執行的觸發器。通過設定Event,你可以指定當數據發生變化或符合特定條件時,觸發相應的Bot執行。這使得你能夠根據不同的事件來自動執行相應的操作,提高工作效率。 Process Process是描述Bot執行步驟的組件,它按照指定的順序引導Bot的操作。在Process中,你可以定義觸發Bot時需要執行的一系列步驟,包括任務和行動。透過Process,你可以精確地控制Bot的執行流程,確保每個步驟按照順序執行,從而實現更高效的自動化流程。 Task Task是基於任務的步驟,用於定義流程中的具體任務。在Task中,你可以指定需要執行的具體任務,例如發送電子郵件、生成報告或更新數據等。透過Task,你可以將流程細分為不同的任務,使得自動化的流程更加清晰和可管理。 Action Action是基於行動的步驟,用於定義流程中的相應行動。在Action中,你可以指定需要執行的具體行動,例如添加表格條目、發送通知或生成文件等。透過Action,你可以根據需求定義相應的行動,使得自動化流程更加靈活和多樣化。 Document Processing Documentation(文檔處理)是 AppSheet Automation 中的一個重要組件。它允許你自動從存儲為PDF、GIF、PNG、JPEG或TIFF文件的文檔中提取有用的內容。這使得文件處理更加便捷和自動化,節省了人工提取和整理數據的時間和精力。 總結 AppSheet Automation 提供了強大而靈活的自動化平台,可用於自動化商業流程和基於文件的工作流程。 Bot、Event、Process、Task、Action和Document processing是AppSheet自動化的主要組件,它們共同為用戶提供了一個全面的自動化解決方案。 透過這些組件,你可以定義自動化的規則、觸發條件、執行步驟和相應行動,從而節省時間、提高效率並加速開發。同時,AppSheet Automation鼓勵組件的可重用性,讓你可以在不同的自動化中重複使用組件,進一步提升開發效率。 無論是分享工作內容還是跟上最新資訊,AppSheet …

快速帶你了解 AppSheet Automaiton 有哪些主要的 Component! Read More »

2023/6/17 每日筆記

每日筆記 前言 以下是今天的主題: 數位行銷 & 數據行銷 數位行銷 & 數據行銷 來到公司後,規劃中有一項目標是「協助公司進行內部數據系統彙整」,每一個系統的開發、設計,背後都有其相應的理由。目前預計使用 Google Sheet、AppSheet、AppScript 來協助公司彙整、分析已有的數據。 因此,有幾個目標需要學習: 如何進行 數據分析(包括 取得、處理清理、彙整、創新、呈現) Google AppSheet、Google AppScript 使用、開發的學習。 數位行銷 & 數據行銷 我還不是很清楚這兩者的差異,以及其內容「大概」在做什麼,因此先調查相關資訊。 digitspark – 淺談數位行銷 & 數據行銷  電子豹 – EDM 行銷為什麼還是這麼夯?再行銷:抓住老顧客、增加黏性、提升客戶終生價值 EDM(Electronic Direct Mail) 目的大致可以歸類為: 加強印象延長關係 電子商務增加營收 提高實體活動參與 訊息傳遞 -> 客戶點閱 -> 點擊信件內的 CTA 連結而成功轉換。 以「新客戶」來說 => 潛在客戶 -> 使用廣告簡訊、廣告聯播、FB、Line@、IG、Youtube等 準客戶 -> …

2023/6/17 每日筆記 Read More »

2023/6/15 每日筆記

每日筆記 前言 今天有以下幾個主題: Networking & http JSON & serialization Networking & http 使用 http package Future is a core Dart class for working with async operations. A Future object represents a potential value or error that will be available at some time in the future. The http.Response class contains the data received from a successful http call.  “If …

2023/6/15 每日筆記 Read More »

2023/6/16 每日筆記

每日筆記 之後應該不太會在這裡寫詳細的 Flutter 學習內容了,就紀錄一些自己讀過的東西,又或是當隨手筆記來做。 前言 今天有以下幾個主題: Flutter Networking & http & JSON & background process  (Flutter) Application Development Standard Operation Procedure(SOP) Flutter Error handling CTO、CIO? Flutter Networking & http & JSON & background process [1] Flutter – Networking – Fetch data from the internet[2] Flutter – Networking – Make authenticated requests[3] Flutter – Networking – …

2023/6/16 每日筆記 Read More »

2023/6/14 每日筆記

每日筆記 前言 今天有以下幾個主題: 上台報告的準備 Flutter Learning 上台報告的準備 今天花了很多時間在處理簡報,以及練習如何報告。 簡報在製作時是一種資訊的主觀詮釋,要知道如何控制焦點,視覺上應該有反差點,反差點是想暗示的部分。除此之外,當版面有點混亂時,可以先拿掉次要插圖、框下減少雜訊,再針對講解重點增強資訊。 Flutter Learning Debugging Debugging 可以分為 Breakpoints 和 Stack Trace,詳細的內容可以參考以下的影片。 https://www.youtube.com/watch?v=O0UvfT5bUPg State Management 接下來要進入 API Call 的部分,不過在實際進入之前,應該先好好了解一下「State Management」。 和 Android SDK or ios UIkit 不同,在 Flutter 中,我們可以重建部分 UI 而不是修改它。Flutter 有足夠的速度可以每次都做這件事(甚至每一個 frame)。 Flutter is declarative. This means that Flutter builds its user interface to reflect the current state of …

2023/6/14 每日筆記 Read More »

2023/6/12 每日筆記

每日筆記 前言 今天有以下主題: Flutter Practice Flutter Learning Note Flutter Practice 將 Flutter 官方的 Cookbook 中的 Form Part 看完後,決定根據先前的經驗還有 Form part 中的教學來實作一個 Register Form。 在開始 Coding 前,少不了草稿上的預先設計! 一個簡易的表單就出來了! 在這個表單中,包括: Email 輸入欄位: 這個欄位需要驗證輸入資料是否符合 Email 的格式。 Username 輸入欄位: 這個欄位需要確定輸入資料的長度小於 20 個 character。 Password 輸入欄位: 這個欄位需要驗證密碼是否包含 1 個大寫字母,1 個特殊符號,以及密碼長度大於 6 個 character。 每個欄位都需要 Focus 的能力,在輸入資料有誤時,Focus 在該欄位上。 除了功能性外,盡量使用了一個 TextFormField 能夠使用到的外觀設計。 …

2023/6/12 每日筆記 Read More »

Flutter! 從0開始的學習之旅 – Users Inputs & Forms(大綱)

小介紹 歡迎來到 Flutter 從零開始系列的 “Users Inputs & Forms” 主題。本篇文章的內容為 學習 “Users Inputs & Forms” 的 Roadmap。 Users Inputs & Forms 大綱 Users Inputs & Forms 有幾個概念一定要懂:  TextField 和 TextFormField:先了解在 Flutter 中,有哪些 Widget 可以使用。 onChanged method:了解如何監聽文本欄位的更改(監聽後 -> 可以有所反應)。 controller:了解更強大的工具 -> 控制器,來追蹤文本欄位的值和進行相關的操作。《案例我應該想一下》 Form Validation:使用 validator 或 FormField 來驗證表單輸入的有效性。 Form Submission:處理表單提交的資料,例如將資料傳送到伺服器或執行其他後續操作。 Keyboard and Focus Management:管理鍵盤的顯示和隱藏,以及焦點的轉移。 Custom Form Widget:創建自定義的 …

Flutter! 從0開始的學習之旅 – Users Inputs & Forms(大綱) Read More »

遊戲產業分析

遊戲產業分析!撇除手遊,究竟是哪1種類型的遊戲收益較高?(持續更新中)

哪種類型的遊戲收益最高 這篇文章,主要是想探討在遊戲產業中,人氣較高的遊戲裡,究竟是付費的遊戲收益較高?還是免費的遊戲收益較高?這樣的比對會先排除手遊,免洗手遊已經嚴重破壞遊戲圈的生態,相關的文章網路上一堆,這邊提供一篇。【免洗手遊破壞生態 相關文章:手遊現況與反思】 比對對象 文章中會比較的對象,大致分成兩類: 免費遊戲 付費遊戲 免費遊戲的入門門檻低,玩家不需要先支付一筆費用就能遊玩。而付費遊戲的門檻相對較高,玩家需要先支付一筆費用才能遊玩。究竟入門門檻對於遊戲收益的影響如何,是這篇文章希望能夠釐清的。 免費遊戲選手: League of Legends Apex Legends Valorant Albion Online 付費遊戲選手: Minecraft Grand Theft Auto V Monster Hunter: World Final Fantasy XIV Online Overwatch礙於其發展過程,從付費遊戲轉為免費遊戲,難以決斷其定位,因此不位列比較範圍內。 遊戲介紹 League of Legends League of Legends,簡稱LoL,是由Riot Games所開發的一款「多人線上即時對戰」遊戲。玩家將扮演一名英雄,和其他玩家組成兩隊,在一個由三條巨大的路和叢林組成的地圖上進行對戰。每個英雄都有自己的技能和特點,玩家需要運用策略和技巧,與隊友協作,擊敗對手,奪取對方基地的核心,以獲得勝利。 在遊戲中,玩家需要熟悉不同英雄的技能和遊戲機制,了解如何在不同情況下掌握主動權。此外,每場遊戲的地圖和遊戲模式都不盡相同,玩家需要根據場景和自己所使用的英雄來調整自己的策略,並且與隊友密切合作才能贏得勝利。 League of Legends的遊戲特色包括豐富多樣的英雄角色和技能,多樣化的地圖和遊戲模式,以及豐富的競技性和社交互動。它也是一個高度競爭性的遊戲,吸引了來自世界各地的數百萬玩家參與到這個全球性的遊戲社區中。 Apex Legends Apex Legends 是一款由美國遊戲開發商Respawn Entertainment開發、由電子遊戲發行商EA發行的「多人連線第一人稱射擊」遊戲。遊戲以未來世界為背景,玩家可以選擇不同的角色,在小隊中組隊對戰,採用生存遊戲的方式,只有最後一隊或最後一個玩家存活下來才能獲勝。 遊戲的遊玩方式是以小隊為單位,每個小隊由三個玩家組成。玩家可以在地圖上收集武器、彈藥、裝備等資源,並進行射擊、爆破等戰鬥。每個角色擁有獨特的能力和技能,例如可以加速奔跑、製造障礙物、治療傷口等,玩家需要根據不同的情況選擇不同的角色,協同作戰才能提高勝率。 Apex Legends 遊戲內也有一套獎勵和進階系統,玩家可以通過遊戲獲得虛擬貨幣,用來解鎖新角色、武器和裝備。此外,遊戲內還有季節性活動和限時模式,使遊戲更加豐富多樣。Apex Legends 遊戲自推出以來一直受到玩家的高度評價,成為了一款受歡迎的多人連線射擊遊戲。 Valorant …

遊戲產業分析!撇除手遊,究竟是哪1種類型的遊戲收益較高?(持續更新中) Read More »