學習筆記

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 »

2023/6/9 每日筆記

每日筆記 明天休息~ 前言 今天有以下幾個主題: Flutter Learning Note Flutter Game Development Information 毛澤東的矛盾論 影片想法 Flutter Learning Note 今天延續昨天 Form 的主題,且在 Coding 的過程中,順帶學了一些技巧或理論知識。 在 Flutter 中,有兩種給予使用者輸入資料的 widget:TextField and TextFormField TextField 具有 “label”, “icon”, “inline hint text”, “error text” 等 Properties。而 TextFormField 是以 TextField 為基礎進一步封裝成的,因此多了像是 “validator”, “onSaved” 等能夠進行表單驗證的屬性。 在 Flutter 中,對於不會變動的對象,可以使用 const 進行效能優化。要注意能夠優化效能是因為被編譯為常量,如果 object 會在 widget tree 的生命週期中做變化,就不可以宣告為 …

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

2023/6/8 每日筆記

每日筆記 前言 今天有以下幾個主題: Flutter Learning Note Flutter Addition Thoughts Flutter Learning Roadmap Flutter Forms Flutter Learning Note 今天跟著教學,完整把自己在 Flutter 的第一個 App 做完了!Your first Flutter app 左邊連結是教學網站!(其實昨天學、看的也是這篇,這次採詳讀、手寫筆記的方式,覺得雖然慢了點但其實對核心把握得滿好的。) 其實 Flutter 最重要的概念真的就是 widget,widget 有很多,為此我特地去找了如何了解 widget => Flutter Gallery。若想知道 Flutter 有哪些 widgets 可以用,以及如何使用,可以去上面這個網站參考,裡面有很多範例。 今天學習到的概念: SizedBox:有時候如果想在 widgets 之間有點間隙,可以在中間放一個 SizedBox,他有width, height 可供調整距離。 有 Column Widget 可用,肯定少不了 Row Widget。這兩者彼此是可以互相 wrap 的,使用要看設計需求。 如果要讓物件左右置中,可以使用 …

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

2023/6/6 每日筆記

每日筆記 還在研究如何提升影片品質,拉高曝光率,先不浪費時間生成低品質影片,轉而用這些時間去讀一些有幫助的文章。 前言 今天有以下幾個主題: 老闆如何決定員工的薪水? 成立獨立遊戲工作室需要付出多少? 捏陶體驗課 租房子 老闆如何決定員工薪水? 昨天晚上睡不著覺,想到秉鴻老師說有另一位學生有做過分配錢與工作的經驗,就想到如果想做遊戲開發,可能也需要相關的經驗和知識,來分配人力跟可利用的資源。「雖然不一定會真的做遊戲開發,但透過這樣的機會多學習一些也沒什麼不好,未來如果有需要成就管理職也可以有所幫助。」 給薪水的考量點 個人認為文章已經統整得非常好,底下嘗試做更精簡的描述,順便讀第二次做內化吸收,嘗試套用在「遊戲開發」的例子上。 對於「員工薪水我們該考慮什麼」,有篇文章很用心的幫我們做了統整: 目前的薪水 以往的薪水得知一位候選人過往的薪資變化,有助於評估對方預期的薪水漲幅。 他的經驗 公司的成長階段Starup無法給出太多的錢,這件事在遊戲開發初期一定會面臨。然而當遊戲開發能有所回饋,工作室發展具備一定程度的發展,就可以考慮給出更多的薪水。 市場中他的level或角色的薪水範圍要考量給予的薪水在市場上是不是合理的。遊戲開發初期,如果沒有其他參考依據,就可以根據市場行情來評估該給予初期團員多少的薪資。(不過礙於startup通常能給的不多,或許給以參考「比例」。) 公司有多需要他的能力 公司有多少預算給他 他是不是公司的少數族群公司若重視多元性,或是建立類似的文化,就要考慮候選人的加入是否能提高公司的多元性,激發更多元的想法和創意。(要考量這部分的效益)。 下次什麼時候會調薪有些處在試用期的人會難以調薪,若看好候選人,可以考慮多給一點作為無法調薪的補償。(這應該是一種留住人才的手段。) 不只該考慮什麼,文章也很認真的幫我們統整「不該考慮什麼」: 團隊裡面其他人的薪水是多少這個概念的重點在於「不該因為其他員工薪水較低就給予較低的薪水」,因為候選人大多只重視公司是否給予自己合理的薪水,薪水是否有達到自己的預期。 公司花了多長時間找到這個人「若輕易地因為找人困難而妥協」,對未來會造成許多的困難。套用到遊戲開發上,如果自己想成立開發團隊,也不能因為得來不易的團員而開出高薪資,這樣對於開發初期需要嚴格管控的資金流會出很大的問題(今天第二個主題是第一個主題延伸閱讀得來的,內容就在討論工作室初期是如何消耗資金的) 自己(身為對方的主管)的薪水是多少員工薪水比主管高是非常正常的事情,身為管理階層,要增加薪水最好的方式,本來就是「找到最有天分的人來做事」。以遊戲開發來說,身為發起者、創辦人,兩三年、三四年沒有薪水都是很有可能發生的事,要有相應的心理準備。(順便分享,這也是我有考慮過無法創業的理由,對於有女友、父母要養、要一起生活的人而言,這是件需要深思的事。) 除了薪水之外的考量,也可以跟候選人討論以下事情: 其他員工福利 學習機會 技術挑戰 職涯的改變 公司的文化 不論給予、承諾的吸引條件是什麼,都要確定公司是能夠達成的,否則沒有信守承諾,對公司的名譽是非常大的傷害。 職位導向 v.s 能力導向 根據文章內容,總結來說我認為「職位導向是結論,是由能力導向衍伸而來的最終產物」,在執行職位導向時,「不能忽略能力,甚至應該高度重視」。 職位導向常會讓人認為「有什麼職位,就有什麼薪水」,然而應該是「有什麼能力,有什麼薪水,才是『可能』有什麼職位」。核心理由是「一個人被調升職位,並不會一之間能力跳級」。有什麼樣的能力,「或許」能夠、有意願身任更高的職位,任職後從中學習、培養、提升能力後,才給予相應的薪水,是比較合理的薪資調整方式。 文中另一個重要概念是,「因為不一定能找到完全符合職務說明條件的人」,所以的會設計三種等級來求才。設計方式我認為很值得深思,求職過程中也可以用這三個等級思考自己的定位,如何成長。第一種:能力符合職位要求的標準型。第二種:能力不完全足夠者,尚待歷鍊培養。第三種:能力已超越職位所需條件者。這種可以付較高的薪資,儲備人才。 另外「能力導向」也比「職位導向」更具積極性。能力導向制有積極提拔、加速培養人才的情況,亦即能力尚未完全勝任(第二種),就指派升任更高職位。要發揮能力導向的積極屬性,就要有重要觀念:是「有機會接任更高、更重要 、責任更大的職位,就有機會接觸更高層次的事物、面對更大的問題、磨練更大的能力,也就有機會朝更高的薪酬發展」,而不是「負更大的責任,就要先有更高薪酬,否則寧可多一事不如少一事」。 這個重要觀念我認為完全可以應用在遊戲開發初期上。剛開始創立運行時,成員都要明白:只有當能力足夠,可以讓工作是有產出,且產出能夠得到認可(有回饋)時,才有可能得到更多的薪酬。而不是我要有多少薪酬,所以投入多少心力開發跟運行,否則我寧可不要做。(這樣想就永遠不可能成功) 參考資料 [1] IT邦幫忙 – 你的薪水是怎麼決定的?[2] 經理人 – 薪水怎麼給,是看能力還是職位?老闆、人資先思考3個問題 成立獨立遊戲工作室需要付出多少? 先定義「獨立遊戲工作室」指的是工作室能夠「決定遊戲走向」,不會受到投資人影響或決策。雖然可能利用第三方資金,但一定要對遊戲開發有決定權。 文章一開頭直說,如果要成立獨立遊戲工作室,可能會花費「一輩子的積蓄和整個人生」。 文內舉出了「成本統計分析」,考量包括: 初始成本 …

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

2023/5/31 每日筆記

為什麼會有這系列文章 以下紀錄幾個我會寫這系列文章的理由: 培養長久做一件事情的能力,不因外力因素就中斷。 積累實力,打造履歷(學習歷程)。 分享、紀錄自己成長過程中,部分運用到的資源。 每日筆記 前言 今天一共有以下幾個主題: 質化型變量與量化型變量 質化型變量如何轉為量化型變量、量化工具的合理性 結論一個人要正常運作的要件 Radio Commander的遊玩影片(第一、二關) 前天的New Question 前兩個主題比較偏技術討論、分享,後三個主題則是一些思維、心得或生活上的分享。 質化型變量與量化型變量 區分質化型變量和量化型變量,關鍵在於是否具有數值上的順序或大小關係。質化型變量只是描述不同的類別或屬性,而量化型變量則具有可測量和計算的數值特性。 質化型變量(Qualitative Variables) 也稱為類別變量或分類變量,表示觀察單位的特定屬性或類別。質化型變量沒有數值上的順序或大小關係,只是用來描述類別或屬性。 例如:性別、婚姻狀態、地區、學歷等都是質化型變量。 量化型變量(Quantitative Variables) 也稱為連續變量或數值變量,表示觀察單位的具體數值。量化型變量可以進行數值上的比較和計算。根據度量層次的不同,可以進一步分為兩類: 離散變量(Discrete Variables):取有限個或可數個數值的變量,通常表示計數或次數。例如:家庭成員人數、每月用戶註冊數量等都屬於離散變量。 連續變量(Continuous Variables):可以取任意數值的變量,可以是整數或小數。例如:身高、體重、年齡、收入、時間、距離等都屬於連續變量。 總結 質化型變量只是描述不同的類別或屬性,而量化型變量則具有可測量和計數的數值特性。區分質化型變量和量化型變量的關鍵,在於是否具有數值上的順序或大小關係。 質化型變量轉為量化型變量 將質化型變量轉為量化型變量最關鍵的要素,是要讓質化型變量在數值上具備順序或大小關係,而決定數值順序或大小則要套上「情境」。 直接舉例:將顧客滿意度(質化型變量)轉化為量化型變量。顧客滿意度通常以評分或評價形式表示,例如「非常滿意」、「滿意」、「一般」、「不滿意」、「非常不滿意」等。為了進行「數值分析或比較」,我們可以將顧客滿意度轉化為數字表示。 在顧客滿意度情境中,我們將滿意視為「大、強」,不滿意視為「小、弱」,因此不同滿意度代表的數值就具有大小和順序性了。 另一個例子:教育程度教育程度通常分為「高中以下」、「大學」、「碩士」、「博士」等。我們可以用0-3根據不同情境需求,套給他們不同的數值。 假設情境是要分析「是否具備較專業的知識」,那博士變量的數值可以給3,設為最大,高中以下可以給0,設為最低,因為情境的出現,質化型變量被套上數值後,也具備順序和大小的特性。 另一個例子:顏色一種顏色常見的轉化方式是將顏色使用數字編碼,例如使用RGB(紅綠藍)色彩模型的數值表示。,將每個顏色分別映射到0到255的範圍內(0-255, 0-255, 0-255)。具備較多或較少「紅」、「綠」、「藍」,就成了情境。因此賦予的數值,具備了大小的特性。 小結:要將質化型變量轉為量化型變量,一定脫離不了賦予數值,而通常數值具備有無、順序或大小的特性。 轉化工具 轉化工具有很多種,在評估轉化工具的合理性上可以考慮以下幾個方面: 目標符合性:轉化工具是否能夠達到所設定的目標和需求。例如,是否能夠準確地將質化型變量轉化為合適的量化型變量。 可靠性:轉化工具是否能產生「一致」和可靠的結果。評估可靠性可以通過測和驗證來進行,例如使用不同的數據樣本進行評估,檢查轉化結果的一致性和穩定性。 適用性:轉化工具是否適用於特定的情境和目標。不同的質化型變量可能需要不同的轉化方法和工具。評估轉化工具的適用性時,需要考慮質化型變量的特性和應用場警,並選擇最合適的轉化方法。 可解釋性:轉化工具產生的量化結果是否能夠被解釋和理解。在機器學習模型中,可解釋性是一個重要的考量因素。評估轉化工具的可解釋性時,需要確保轉化結果能夠清晰地表達質化型變量的特點和含義。 相關性:轉化工具產生的量化結果是否與質化型變量具有相關性。評估轉化工具的相關性可以通過統計分析和相關性測量來進行,確定轉化結果與原始質化型變量之間的關聯程度。 一般來說,選擇和使用轉化工具時,需要綜合考慮這些評估標準,確保轉化工具的合理性和有效性。 常見的轉化工具包括: 獨熱編碼(One-Hot Encoding):將每個類別轉換為一個二進制特徵,使得每個類別都有自己的特徵列。這種轉化方式常用於處理多類別分類問題。 數值編碼(Numeric Encoding):將類別映射為一個數值,可以使用類別的頻率、軍職、中位數等統計數據做為數值編碼的依據。 順序編碼(Ordinal …

2023/5/31 每日筆記 Read More »

2023/5/26 – 每日筆記

為什麼會有這系列文章 以下紀錄幾個我會寫這系列文章的理由: 培養長久做一件事情的能力,不因外力因素就中斷。 積累實力,打造履歷(學習歷程)。 分享、紀錄自己成長過程中,部分運用到的資源。 每日筆記 AI/ML 學習歷程 Youtube 教學頻道分享、觀看紀錄 大約兩天前,我找到一個頻道,專門講解AI相關的課程。(Youtube頻道連結 – Hung-yi Lee) 這位老師講的內容,我覺得很好理解,目前正在觀看【機器學習2021】這份播放清單的內容。截至目前為止已看: 【機器學習2021】預測本頻道觀看人數 (上) – 機器學習基本概念簡介 【機器學習2021】預測本頻道觀看人數 (下) – 深度學習基本概念簡介 【機器學習2021】類神經網路訓練不起來怎麼辦 (一): 局部最小值 (local minima) 與鞍點 (saddle point) 【機器學習2021】類神經網路訓練不起來怎麼辦 (二): 批次 (batch) 與動量 (momentum) 平均每天觀看兩部影片左右。 上課影片簡報:機器學習、深度學習基本概念簡介 文章類 – 深度學習框架的入門抉擇 學習要透過實作才會印象深刻!在觀看 Hung-yi Lee 老師的教學影片後,我開始思考如何實作老師教導的內容。 第一步就是先選擇自己學習AI要使用的框架。我們都知道目前深度學習框架有PyTorch與TensorFlow兩大框架,兩者剛好互相佔據學術界與產業界的餅。根據閱讀過的文章,學術界以PyTorch為主,產業界以TensorFlow為主。 基於學習上的考量,將以PyTorch作為踏入AI這塊領域的起手式。在熟悉、理解AI領域的專業知識後,會轉為了解、使用TensorFlow。 參考資料:[1] HackMD – 深度學習框架: PyTorch與TensorFlow[2] Medium – …

2023/5/26 – 每日筆記 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 »

Flutter! 從零開始的學習之旅 – How do I make my first Flutter app (筆記)

從基本概念該使學習Flutter! 嘿嘿,是不是有騙到你去點擊圖片呀XD 別緊張,影片我會放在文末。這篇文章主要的目的便是用來記錄在影片中學到的相關知識和技術,方便未來可以回來複習。 Widget Widget是Flutter的核心概念。不誇張的說,Flutter框架內的物件都有用到Widget的概念。 至於Widget是什麼概念?影片中的舉例是寫書。 我們把書看成一個大Widget,書中會有許多的章節,所以我們會說書是由文章所組成,而文章則是結構更小的Widget,文章又由句子Widget組成,句子則由詞、標點符號等更小的Widget組成。 也就是說,Flutter 框架寫出來的App都是透過這樣的方式去設計跟構想的。 在設計一個App的頁面時,我們也可以透過Widget的概念去解析一個頁面。 宣告每個widget時,都會有一個build function,用來建構這個widget。 main.dart package:flutter/material.dart 這個Library可以說是剛開始學Flutter時,唯一需要知道的Library,就像剛開始學C++時只會用到<iostream>。懂了程式基本概念後,則會用到其他更深的演算法Library或資料型別Library。在Flutter框架下,”package:flutter/material.dart”就有著類似的地位。   main function 沒什麼好說的,程式會從這裡開始運行。 runApp()函數會將傳遞進去的widget放在整個結構的root上,也就是最上層的widget。 Hot Reload Hot Reload是Flutter框架的一個特色,可以幫助我們在不重開應用的情況下將修改或新增的程式碼表現在已經開啟的應用中。 影片分享