---
# System prepended metadata

title: 2021下暑假日記
tags: [生活, 日記]

---

# 2021下暑假日記
###### tags: `日記` `生活`
###### 最後更新時間 : 2023/01/03

## 目錄
|日期|概述|
|:-:|:-:|
|[08/15(日)](#0815(日))|利用**公共接口**控制讀寫權限|
|[08/16(一)](#0816(一))|建構函數、構析函數、拷貝構造函數|
|[08/17(二)](#0817(二))|巴哈進版圖投稿|
|[08/18(三)](#0818(三))|淺拷貝與深拷貝區別|
|[08/19(四)](#0819(四))|`valgrind`與`gdb`|
|[08/20(五)](#0820(五))|`ostream`中的`<<`與`cout`|
|[08/21(六)](#0821(六))|運算符重載|
|[08/22(日)](#0822(日))|繼承、多態|
|[08/23(一)](#0823(一))|打完Modelsim文章|
|[08/24(二)](#0824(二))|整理GitHub|
|[08/25(三)](#0825(三))|整理GitHub|
|[08/26(四)](#0826(四))|畫好個人logo|
|[08/27(五)](#0827(五))|打完2篇文章|
|[08/28(六)](#0828(六))|ASCII碼與二進制讀檔|
|[08/29(日)](#0829(日))|C-style string的處理|
|[08/30(一)](#0830(一))|Ardunio基本認識|
|[08/31(二)](#0831(二))|C++專案二|
|[09/01(三)](#0901(三))|Notion基本操作|
|[09/02(四)](#0902(四))|C++專案二|
|[09/03(五)](#0903(五))|泛型編程-模板|
|[09/04(六)](#0904(六))|類模板繼承|
|[09/05(日)](#0905(日))|`STL`認識|
|[09/06(一)](#0906(一))|`string`函式庫|
|[09/07(二)](#0907(二))|`vector`函式庫、`deque`函式庫|
|[09/08(三)](#0908(三))|Notion Formula|
|[09/09(四)](#0909(四))|建立Notion追劇的database|
|[09/10(五)](#0910(五))|Markdown換行規則|
|[09/11(六)](#0911(六))|打完1篇文章|
|[09/12(日)](#0912(日))|excel軟體使用|
|[09/13(一)](#0913(一))|excel軟體使用|
|[09/14(二)](#0914(二))|excel軟體使用|
|[09/15(三)](#0915(三))|excel軟體使用、整理文章|
|[2021下暑假總結](#2021下暑假總結)|C++, git, linux基本操作|

<br>

## 08/15(日)
### 進度
- 將所有成員屬性設置為`private`，利用**公共接口**控制讀寫權限
- 在`makefile`裡面寫`for loop`和`cd`到位置並執行

### 心得
程式基礎沒學好，8/01開始重學`C++`，，前面學一些基礎語法，感覺比較重要的有**記憶體配置(heap, stack, bss...)**，之後再打一篇筆記加深印象。
![](https://i.imgur.com/q60GmGF.png)

今天一樣下午才起來，又睡了1個半小時的午覺，作息還是很難調。
花了一些時間多搞懂`makefile`的一些語法，像是今天我要編譯成執行檔再放到`build`資料夾，之後再`cd`到那個目錄去執行。
```makefile
hw01:hw01.cpp
	g++ -o hw01 hw01.cpp
	@mv hw01 build/hw01
	@cd build &&\
	./hw01
```

之後進入`class`的入門，提供`public`接口函式讓`class`外可以去access到`private`的變數，並限制他的讀寫權限，還挺有趣了。再來做分文件編寫，但不知道什麼bug跑不動，現在也很晚了，明天再解決。
![](https://i.imgur.com/D4ZnE9J.jpg)

<br>

## 08/16(一)
### 進度
- 建構函數、構析函數、拷貝構造函數
- 整理巴哈小屋文章和打些新的文章

### 心得
今天一早起來就開電腦，把`VScode`所有分頁關閉才跳出**你是否要儲存**的視窗，原來是我沒儲存，現在才發現原來`VScode`儲存時不是像一般文件前面有`*`號，而是在關閉分頁的叉叉鍵會變成藍色圓圈，我真是太白癡了。看了一點建構函數、構析函數、拷貝構造函數。之後跟哥哥去外面跑步一小時，希望之後每天也能運動，不然整天宅在電腦桌前也不好。

今天的`C++`進度就算了，晚上整理一下以前巴哈小屋舊文，看到很多黑歷史，算了就當作是紀念，文章重新排版，之後要發文比較有一致性。剛剛打文章又想到一個場外進版圖的點子，明天弄看看好了，感覺應該很有趣。

<br>

## 08/17(二)
### 進度
- 巴哈進版圖投稿
- HackMD文章施工中

### 心得
一起來就把昨天構思的想法用`AE`與`AI`實踐，並把實踐經過與之前兩篇投稿的做個整理打成一篇[文章](https://hackmd.io/@HsuChiChen/bahamut)紀錄。
![](https://i.imgur.com/apvpPnh.gif)
之後一樣和哥哥去綠色隧道跑步一小時。回來之後繼續打文章，並把[個人文章目錄](https://hackmd.io/@HsuChiChen/content)打好，繼續打了好幾篇與把舊文重新翻出來做個備份，看最近幾天能加緊趕工把之前一直想打的文章趕快打完，不然`C++`進度又會被拖延下去了。開學前我還想複習一下電子學的說，覺得自己很多東西都沒學好、學扎實，很後悔。

<br>

## 08/18(三)
### 進度
- 淺拷貝與深拷貝區別
- 靜態成員
- 成員變量和成員函數分開存儲
- 第一次吃五鮮級

### 心得
大二下的我開始在[薯串](https://forum.gamer.com.tw/C.php?bsn=60076&snA=3146926)和清交串潛水，也偷偷關注了很多電霸的日記，看別人分享一下學習或修課日記，感覺也是很重要也挺有趣的。

今天不打文章，畢竟我打的很多文章對本科學習沒什麼幫助，之後再慢慢打完吧。昨天失眠，所以今天睡到下午，一樣和我哥去跑綠色隧道，不同的是我們這次跑附近的鄉間小道，車子比較少一點，更多的是一樣鄉下的一些鳳梨田、香蕉田、水稻田、雜草有點多的公墓群，不得不說每次鄉下某些地方都會屎味真的不太舒服，可能是養豬的吧，這次跑的新路線還不錯，有種新地方探險的新奇感。

晚上和哥哥去吃好料的-[五鮮級](https://www.5starlimitpot.com.tw/2011639854320262581840670.html)，這好像是南部的中高檔火鍋連鎖店，成大附近好像也有，不過我都宅在系館沒吃過，我們點了5盎司的美國牛，原本以為會少，結果肉很多又很高級，吃的還蠻痛快的，果然有時候還是要享受一下，不然大學越念越宅，我幾乎都與這世界脫節了。

---

接下來幾個今天學到重要的知識點，我擷取我筆記比較重要的知識點。
1. 如果屬性有在堆區開辟的，一定要**自己提供拷貝構造函數**，防止淺拷貝帶來的問題。
- 淺拷貝 : 簡單的賦值拷貝操作，默認的拷貝構造函數實現
- 深拷貝 : 在heap重新申請空間，進行拷貝操作
```cpp
class person{
public:
    person(){
        cout << "默認構造函數調用" << endl;
    }
    
    person(int age, int height){
        m_age = age;
        m_height = new int(height); //stack區指針去存heap區的地址
        cout << "有參構造函數調用" << endl;
    }

    person(const person &p){
        m_age = p.m_age;
        //m_height = p.m_height //編譯器默認實現這行代碼，
        //但因為是淺拷貝會造成析構函數重複釋放heap的空間，而產生錯誤

        //需要深拷貝解決
        m_height = new int (*p.m_height); 
        //解引用該值，並重新向heap區申請一個空間讓
        //讓自己的m_height去指向這塊空間
        cout << "拷貝構造函數調用" << endl;
    }

    ~person(){ //析構代碼，將堆區開闢的數據做釋放
        if(m_height != NULL){
            delete m_height;
            m_height = NULL; //防止野指針出現
        }
        cout << "析構函數調用" << endl;
    }
    int get_age(){
        return m_age;
    }

    int m_age;
    int *m_height;
};
```


2. 靜態成員
    - 所有對象共享同一份數據，並在編譯階段分配內存(review : 數據存在記憶體的data segment)
    - 靜態成員函數不可以訪問非靜態成員變量，因為這個數據屬於特定的對象，因此無法區分到底是哪一個對象的。
    - 可通過對象或類名訪問
    - 類內聲明，類外初始化`int person::m_a = 0;`
3. 成員變量和成員函數分開存儲
    - 只有非靜態成員變量才屬於類的對象上。不占對象空間代表在這個類所有對象都共用一份數據。
    - 成員函數也不占對象空間，所有函數共享一個函數實例，因此會透過`this`指針去區分現在指到的對象

另外有篇[內存對齊的文章](https://zhuanlan.zhihu.com/p/30007037)我覺得寫的很好，明天再實際上敲代碼測試看看。

<br>

## 08/19(四)
### 進度
- `this`指針
- `const`修飾成員函數
- 類外聲明函數內容
- `valgrind`與`gdb`重學

### 心得
結果昨天那個`memory padding`的文章沒看，明天再看。
今天逛一下場外有點分心，然後又想說今天沒什麼進度有罪惡感，又搞到現在熬夜了。`class`還是有些語法不太熟，影片重複看了好幾次，彈幕掃一下看有沒有大佬解答。

#### 鍊式編程思想
拷貝構造函數
```cpp
person& person_add(person &p){
        this->age += p.age;
        //返回對象本體
        return *this;
    }
```
主函式
```cpp
person p1(10);
person p2(30);
p2.person_add(p1).person_add(p1).person_add(p1);
cout << p2.age << endl;
```
如果不是用**引用**的方式返回，則會調用到拷貝構造函數，即`p2.person_add(p1)`返回的是新拷貝的對象`(p2)'`，而非原先的`p2`，因此`p2`只會加1次，之後都是`(p2)'`、`(p2)''`在做運算了。

#### cost修飾成員函數
- `this`指針的本質是指針常量，指針的指向是不可以修改的，即`person * const this;`。

- 在成員函數後面加`const`，修飾的是`this`指向，讓指針指向的值也不能修改
    ```cpp
    void show_person() const{
        //this->m_A = 100;
        m_B = 200;
        //this = NULL; //this指針的指向是不可以修
    }
    ```
- mutable易變的，特殊變量，即使在常函數(常對象不可以調用普通的成員函數，因為普通成員函數**可以修改屬性**)中，也可以修改這個值，定義`mutable int m_B;`


#### friend
接下來講到`friend`，觀念不會很難，但類外實現成員函數又用指針去在一個類中創建另一個類，需要想一下。
- 用建構函數向`heap`申請一個空間
```cpp
dude::dude(){
    m_building = new building;
}
```
在`dube`的`class`裡面新增`building *m_building;`，用指針去接收新增`heap`的地址，所以之後要用`m_building->sitting_room`去訪問。
最後教學忘記釋放記憶體了，雖然`OS`會回收，但`mem leak`不好，需在析構函數加上`delete`
```cpp
dude::~dude(){
    delete m_building;
}
```
而如果需要拷貝時，需要自己寫拷貝構造函數，不然會產生淺拷貝的問題。

之後想打一下[debugger筆記草稿](https://hackmd.io/@HsuChiChen/debug)。


#### 趣事
然後題外話，我已經好多次看到這個人回答問題了，而且還回答的很有條理，真的很難不去注意這個用戶。
![](https://i.imgur.com/kTYVSfE.jpg)

<br>

## 08/20(五)
### 進度
- `ostream`中的`<<`與`cout`基本輸出原理

### 心得
下午起來和哥哥去新地方-[林後四林平地森林園區](https://goo.gl/maps/WkBGb1mU3BRngcaw5)跑步，很多種植林和多樣的植物，跑起來還蠻新奇的，途中有點落雨，原本以為會突來暴雨，到最後還好沒有，現在這幾個禮拜天氣都陰陰，好像要下雨，好險跑步的時候都沒下雨。

最近幾天進度真的有點落後，有點難專心。教學看的有點卡，可能那些最基本的語法還要不斷複習、重打熟練，今天講到運算符重載，其中講到一直在用的`cout << endl;`意義。

---

`<<`可以是`bitshifting operators`(移位)，或是`stream insertion operator`，我想既然他是相同的符號，是不是代表他發生函數重載呢?不過還是說他們作用域不同，所以不會弄混?我不知道。

以後者的`>>`舉例來說:
```cpp
cout << a << end;
```
把右邊的資料`a`傳送給其左邊的`cout`，而`cout`是一個在`ostream`類中的一個對象，而最後的`endl`實際上是`<<"\n"<<flush;`，即**換行再清空緩衝區並**把字串輸出到`stdout`之類的輸出串流。
整段其實就是**鍊式編程**思想，實際上`<<`會以引用的方式`ostream&`回傳，繼續以相同的類型輸出。

參考連結
- [cin in C++](https://www.geeksforgeeks.org/cin-in-c/#:~:text=The%20cin%20object%20in%20C%2B%2B,object%20cin%20for%20reading%20inputs.)
- [Overloading stream insertion (<>) operators in C++](https://www.geeksforgeeks.org/overloading-stream-insertion-operators-c/)
- [C++ 重载运算符和重载函数](https://www.runoob.com/cplusplus/cpp-overloading.html)
- [C++的輸出入cin/cout和scanf/printf誰比較快？](https://chino.taipei/note-2016-0311C-%E7%9A%84%E8%BC%B8%E5%87%BA%E5%85%A5cin-cout%E5%92%8Cscanf-printf%E8%AA%B0%E6%AF%94%E8%BC%83%E5%BF%AB%EF%BC%9F/)

<br>

## 08/21(六)
### 進度
- 運算符重載相加、左移、遞增、賦值、函數調用運算符
- 繼承方式、同名處理

### 心得
最近似乎找到了自己的生活步調(daily routine)，每隔兩天一小時的運動，有時候去阿嬤家買一些東西加菜，南部的生活平淡而悠閒，也讓我進度開始變得緩慢，想到離**9/15開學不到一個月**，開始面對電磁學等必修硬課，我應該要有所警惕，不然我總是後悔自己GPA太爛，但又不有所努力去改變現狀，是一個不好的惡性循環。

看到薯串有人講到馬鈴薯大大的文章-[與一個女同學發生的悲慘意外](https://home.gamer.com.tw/creationDetail.php?sn=3469446)，之前覺得太長沒看，現在又重新看了一下，真的好好看，我不暴雷好了，寫個引言:
>班遊兩天的時間，女生因為一些原因要讓男二去忌妒自己向馬鈴薯提出假扮兩天情侶，馬鈴薯也同意了，之後發生種種滴滴的事情。

我的心情就跟馬鈴薯一樣從猜想的疑惑、兩人之間的曖昧，尤其是獨處的對白這部分十分傳神。我也很喜歡校園愛情故事的展開，這種青澀的相處與獨白、同儕之間的注目玩鬧、與那看似有情又看似無情的曖昧感，這些看似平淡無奇的日常，一起相處的時光卻如此刻骨銘心，真的是他精髓所在。

---

好了，我的處男幻想時間結束了，繼續推我的`C++`進度。
**運算符重載**是對已有的運算符重新進行定義，賦予其另一種功能，以適應不同的數據類型，在這方面我重新認識一些基本符號的原理，以**仿造其內部原理**進行函數重載。
- 左移`<<` <br>
配合友元可以實現輸出自定義數據類型
需讓函數去能調用`private`變數。
```cpp
friend ostream& operator<<(ostream& out, Person& p);
```
```cpp
ostream& operator<<(ostream& out, Person& p) {
	out << "a:" << p.m_A << " b:" << p.m_B;
	return out;
}
```

- 遞增`++`<br>
前置遞增返回引用，後置遞增返回值，這也是為什麼`a++++`不行，但`++++a`可以編譯
1. 前置
```cpp
//重載前置++運算符 返回引用為了一直對一個數據進行遞增操作
    integer& operator++(){
        //先進行++運算
        m_num++;
        //再將自身返回
        return *this;
    }
```
2. 後置
```cpp
//重載後置++運算符
integer operator++(int){ //int(必須要用int)代表佔位參數，可以用於區分前置和後置遞增
    //先 紀錄當時結果
    integer temp = *this;
    //後 遞增
    m_num++;
    //最後將記錄結果做返回
    return temp; //局部對象temp在當前函數執行完就會被釋放
    //所以如果後面還要返回引用就是非法操作，因此後置遞增要返回值
}
```
- 賦值`=`<br>
跟之前**拷貝構造函數**大同小異，解決方法為提供**深拷貝**解決淺拷貝的問題
- 關係`>`, `<`
- 函數調用運算符`()`
由於重載後使用的方式非常像函數的調用，因此稱為**仿函數**非常靈活，沒有固定的寫法。

---

接下來終於進入`OOP`的第二大特性**繼承**，一些繼承方式與繼承同名成員處理方式記得其規則不難。

<br>

## 08/22(日)
### 進度
- 多類繼承、菱形繼承與內部如何實現
- 多態語法

### 心得
今天我們去比較遠的地方，就是在[林後四林平地森林園區](https://goo.gl/maps/WkBGb1mU3BRngcaw5)騎過去[山腳下的來義](https://goo.gl/maps/cNGbPjYKZoHsw3n68)，我們走了吊橋和河堤，也沒多少路就回去了，畢竟路途還是有點遠，回程時，太陽西下，金色晚霞真的很美，我也想到以前幼稚園我最愛的顏色是黃色，是因為喜歡太陽總是帶給我光明，不過現在很多童年的東西都忘了，我也差不多只記得到這樣而已。

---

老實說今天的進度沒推很多，運動完回來有點累。結束`OOP`第二大屬性-**繼承**，其中也衍生出一個多繼承的問題-菱形繼承，子類繼承兩份相同的數據，導致資源浪費以及毫無意義，因此可利用**虛繼承**解決`virtual public animal`，不過實際開發中不建議用多繼承，所以這部分了解即可，盡量不要用，蠻有趣的是有講到虛繼承的**內部實踐原理**其實只是繼承指針`vbptr(virtual base pointer)`指向紀錄偏移量的`vbtable`而已，這部分的解決蠻有趣的，能看到別人解決問題的方法。

<br>

## 08/23(一)
### 進度
- 整理GitHub上的糞repo
- 打完Modelsim文章

### 心得
今天把我Github上以前傳的糞code整理了一下，以前不會用`git`, `markdown`，就胡亂當雲端亂傳，現在
1. 重新命名，除去中文、空格、太長的檔名
2. 減少使用docx, pdf非程式的檔案
3. 把readme.md弄好，其中環境配置、如何執行、這個repo的功能交代清楚

不然我現在都忘了以前在打什麼，當作是個紀錄。

晚上又打了[如何使用Modelsim進行數位電路模擬](https://hackmd.io/@HsuChiChen/modelsim)這篇文章，之前資料查蠻久的，才找到最適合自己的方法，也是一樣紀錄一下，操作步驟是用強大的軟體[Camtasia Studio](https://www.youtube.com/watch?v=e2pbcnC4GOY)+[FFmpeg](https://github.com/FFmpeg/FFmpeg)錄屏後製並編碼`GIF`真的很舒服。

從早上一直弄到現在，明天再把剩下兩個邏輯設計實驗和VLSI這2個`repo`整理好就收工，老實說我現在由於是新手，打出來的真的是garbage，不過這東西算是個紀錄與回憶，要不斷練習，回顧自己過去打的哪邊效率可以優化，這樣才是一個好的成長。

<br>

## 08/24(二)
### 進度
- 整理GitHub上的糞repo第二天

### 心得
昨天爸爸從台北開車回來，今天晚上我哥、爸和阿嬤、阿公吃[牛大福](https://g.page/newdayfood?share)二樓自由點盤的鴛鴦火鍋，我記得這家好像是當初開理髮店的姨婆推薦的，之後我們覺得不錯，就常常來吃。

---

第二天一樣繼續整理糞repo，以為今天可以弄完，結果花了很多時間重看文檔和程式，才歸納出摘要，接下來只剩一個final project的內容了，明天應該就可以弄完這些雜事了。

說到雜事，我想弄的跟學習無關雜事還很多，想用一個很炫炮的封面`GIF`動畫(如下圖啟發)與學前端美化個人靜態網頁，還有把想記錄的文章打一打，希望能在9/15開學盡量做完，雖然我知道很難辦到就是了。
![](https://i.imgur.com/AigKGbC.gif)

<br>

## 08/25(三)
### 進度
- 整理GitHub上的糞repo第三天

### 心得
隔了三天和我哥一樣去林後四林平地森林園區運動，跑了一小時的步。今天算是把糞repo整理完了，至少介紹文檔是我還看得懂的樣子，畫了一些硬體架構的示意圖，是有關於之前期中弄超久的運動企鵝，難點是捲積中`padding`邊界條件的處理。
![](https://i.imgur.com/iaCLqhd.png)
現在好累，感覺好像沒弄什麼就要睡覺了，可能都是在弄整理的粗活，今天整理完後，明天就可以繼續練習C++了，把`OOP`的多態結束，後面還有模板和`STL`，希望能在開學前學完。

<br>

## 08/26(四)
### 進度
- 畫好個人logo
- 多態原理
- (純)虛函數虛與(純)虛析構

### 心得
今天晚上去家裡附近的[純良羊肉](https://goo.gl/maps/uQCMAAosUPmCiCkX9)買150元的炒沙茶羊肉(大)去阿嬤家加菜，之前在潮州都是吃阿祥羊肉，但是因為阿祥生意太好，有了知名度，羊肉用量就開始走下坡，感覺很多店都是這樣 : **只有一有名，就勢必漲價一波**。而這次買的純良羊肉，是我和我哥第一次吃，150元就羊肉和青菜一堆，吃的很過癮，下次應該還會再買去阿嬤家加菜。

---
下午弄了個人GIF動圖，放在我的`GitHub`首頁，順便再把本名改成暱稱，放在巴哈小屋自介和個人相關資訊(巴哈網頁版才看得到)，不過這也不算是logo，只是單純文字而已。我其實一直想要有一個**能有高度識別的個人logo**，但我目前沒什麼想法就是了。
![](https://i.imgur.com/zww1jKC.gif)
基本動畫實踐我就打鐵趁熱寫了一下[步驟](https://hackmd.io/@HsuChiChen/youtube)，主要效果有呈現霓虹燈的光暈、讓背景顏色漸層的gradient ramp、讓文字歪斜的skew，和alpha蒙板兩圖層之間的關係。

接下來終於把`OOP`最後一部分多態打完了，前面三天都在整理`Github`真的太久沒碰了，今天是算是"回鍋"。重點有3個:
1. 多態原理
虛函數指針`vfptr`、虛函數表、重寫
2. 設計模式 - **開閉原則**(對擴展進行開放，對修改進行關閉)
多態對前期和後期擴展以及維護性高。
3. (純)虛函數虛與(純)虛析構
    - 通常父類中虛函數的實現是毫無意義的，主要都是調用子類重寫的內容，因此可以將虛函數改為**純虛函數**，該類變成抽象類。
    - 多態使用時，如果子類中有屬性開辟到`heap`，那麽父類指針在釋放時無法調用到子類的析構代碼->將父類中的析構函數改為**虛析構**或者**純虛析構**。

之後有時間或許可以碰一下設計模式，對`OOP`會有更深的了解與實踐，不過我想開學後我也沒什麼時間了。

<br>

## 08/27(五)
### 進度
- 打完[Adobe學習日記](https://hackmd.io/@HsuChiChen/adobe-log)文章
- 打完[電腦實用軟體與插件](https://hackmd.io/@HsuChiChen/software)文章

### 心得
今天我哥騎車載我隨便亂騎，我們都沒有帶手機，憑著路標和方向感騎到萬金聖母殿，不過也沒什麼好逛的，走了教堂一圈，之後就騎到萬巒去買[海鴻飯店豬腳](https://goo.gl/maps/AAuPWQb5z7gj7jJQ7)。記得小時候我都會跟媽媽吵說要吃豬腳，然後媽嗎都會買這間，過年親戚大家分著吃。我和哥哥買了300元小份的豬腳帶回阿嬤家吃，現在只有我和我哥吃而已，一人分很多真的吃得很過癮，不過也有點膩，對比小時候我都沒吃幾塊大家就分完了，讓我感覺到有時候吃的不僅僅是食物，更是吃那種團圓的感覺，現在吃的豬腳或許也跟以前的味道不一樣了，這些年來很多周邊人事的變化 - 小阿姨生第二胎、媽媽明年要退休了，上了高中與大學我很多心態上的改變，當下的感覺過了，就再也一去不回了。

---

今天打完2篇跟學習無關的廢文，分別[Adobe學習日記](https://hackmd.io/@HsuChiChen/adobe-log)、[電腦實用軟體與插件](https://hackmd.io/@HsuChiChen/software)，明天應該可以再把最後兩篇打完，也算是給我大二荒唐的過往回憶做個ending。

<br>

## 08/28(六)
### 進度
- ASCII碼與二進制讀檔

### 心得
今天把ASCII碼與二進制讀檔結束，二下時那時寫作業一直卡在讀檔，今天惡補一下，但我開始發現難點應該不是讀檔，而是字串處理，那時助教給的格式真的很麻煩，我那時最後就土法煉鋼去弄，之後可能還有去補一下字串`string`與字符串陣列`char c[100]`的處理，這部分`atoi`、`sstream`還需要熟悉，不然每次作業都寫得很痛苦，然後其他同學老早寫完了QQ。

基本上`ofstream`, `ifstream`, `fstream`是一個`class`，因此也可以直接用**構造函數**進行初始化。
```cpp
ofstream ofs("test.txt", ios::out | ios::binary);
```

---

睡前原本想熟悉一下`merge`處理的流程，但沒想到`git push`時出現錯誤
```
Support for password authentication was removed on August 13, 2021. Please use a personal access token instead.
```
大意GitHub是不再支援密碼輸入認證，我照著[Youtube上的教學](https://www.youtube.com/watch?v=ytSoabxSQ6E)，看起來他只是複製到剪貼簿而已，我照做就不行；又看到[Stackoverflow這篇](https://stackoverflow.com/questions/68775869/support-for-password-authentication-was-removed-please-use-a-personal-access-to)，也不行，如前面兩篇文理論上**cache the given record in your computer to remembers the token**，但我懷疑我是用WSL或是ssh去連線，並非原生系統導致，所以又debug到現在。最後我放棄了，就照個[教學](https://hackmd.io/@sysprog/git-with-github)，用SSH public key的方法解決了，不過我要記得下次`clone`時要選擇ssh的通道網址
```
git clone git@github.com:username/repo_name.git
```

<br>

## 08/29(日)
### 進度
- C-style string的處理

### 心得
今天和我哥去林後四林，可能是因為假日人特別多，所以我們就走到外面-別人私人土地的鄉間小道，不過可能是我帶頭亂走，加上我們也沒帶手機，差點以為回不去了，最後憑著方向感才走回來，這次運動量也很大，沒想到會有點遠。
![](https://i.imgur.com/k7GR2BS.jpg)
之後我哥就說下次不帶我去運動了，因為我每次都會亂走(走沒走過的，差點迷路)，過多的運動量讓他準備高普考都沒精神，不過他這次出來前也講過一樣的話，我好像需要反省一下了。

---
接下來進入課程的第二次專題，看起來跟第一次很像-都是人員手冊，我資料查著查著，結果就看到有人講解字串處理，也講的蠻好的，打了筆記[C-style string的處理](https://hackmd.io/@HsuChiChen/c-style-string)。

<br>

## 08/30(一)
### 進度
- Ardunio基本認識

### 心得
開學時要修單晶片設計導論，之前沒玩過Arduino，完全沒有概念，所以先來認識一下好了，之前偷幹到學長去年單晶片的上課講義。
- [109學年課程介紹](https://hackmd.io/@mcu2020/HyngoQvEv)
- [跑馬燈&多工七段顯示器與掃描鍵盤](https://hackmd.io/@mcu2020/Hya8u-YGv)
- [計步器](https://hackmd.io/@mcu2020/HkgYdNPBv)
- [藍芽模組、Keypad密碼鎖](https://hackmd.io/DU6S8hW3Rdm0XdPYvRSMrw)
- [電算機](https://hackmd.io/ZQIGmqyUTaC-_KjeEgjuag)
- [跟隨自走車](https://hackmd.io/u9CkYFDIRoq7QqIFUsLqpQ)
- [單晶片系統設計與應用](https://hackmd.io/@mcu2020/ryppsZYGw)

而今天查到的網路資源[佑來認真教影片](https://www.youtube.com/watch?v=3mw-1Bvv0WU&list=PLdckmk1Jf8MYOED98iY13wdGi52h-O69X&index=1)、[tinkercad - 網頁版Arduino模擬](https://www.tinkercad.com/)、[Arduino 基本語法筆記](https://yhhuang1966.blogspot.com/2015/09/arduino_14.html)，之後載Arduino IDE。
- 認識
客製化的 `C/C++`語言, 其程式架構仿自設計界熟悉的 Processing。


- Arduino Sketch基本組成
1. 匯入函式庫與定義 (可有可無)
```c
#include <SoftEasyTranfer.h>
#define LEDPIN 13;
```
2. 宣告常數與全域變數 (可有可無)
```c
const float PI=3.14159;
int r;
```
3. 設定函式 (必要)
```c
void setup() {}
```
//4. 無限迴圈  (必要)
```c
void loop() {}
```
5. 自訂函式 (可有可無)
```c
float area(float r) {
    float a=PI*r*r;
    return a;
}
```

|名稱|簡介|
|:-:|:-:|
|Serial Library|將訊號傳輸到電腦序列埠監控視窗|
|類比訊號、map|類比訊號輸入輸出、訊號mapping|
|伺服馬達(Servomotor)SG-90|可轉動到指定0-180度|
|[74HC595](https://lastminuteengineers.com/74hc595-shift-register-arduino-tutorial/)|Shift Register，三個接腳可以同時控制八個輸出|
|步進馬達與ULN2003A|與伺服馬達差異在於轉到指定角度，搭配ULN2003A使GND角不斷改變，而造成內部電流的磁效應差異，而驅動馬達轉動|
|8X8點陣馬達|可用MAX7219驅動8x8矩陣式LED顯示器|

>74HC595原理
![](https://i.imgur.com/IJ8Bc3t.gif)


無限控制方法
|名稱|簡介|
|:-:|:-:|
|藍芽|hc05, hc06|
|無線電|NRF24L01|
|WIFI|ESP8266|

---

研究一下，絕大部分跟C差不多，第三方模組感覺還有用到部分C++的class，看起來程式好像不是難點與方向，更多是研究IC的datasheet、電路腳位接法與要做什麼東西的創意發想。

晚上跟我一個霸霸的朋友聊天，每次跟她聊天資訊量都會很大，他也會分享一些酷酷的東西，其中我蠻感興趣是他之前爬蟲時弄的副產物-驗證碼圖形識別(用python的Tesseract)和[nand2Tetris的課程](https://www.coursera.org/learn/build-a-computer)，從nand開始自己做出一台可以執行tetris遊戲的電腦，蠻有趣的，之後有時間(絕對沒時間)，再看一下爬蟲。

<br>

## 08/31(二)
### 進度
- C++專案二的完成一半

### 心得
今天重新推`C++`進度，但看的實在有點卡，很多東西其實教學都沒講到或是有些錯誤，晚上問了個問題[What is an empty file composed of?](https://stackoverflow.com/questions/69002680/what-is-an-empty-file-composed-of)，**拿到5個倒讚**QQ，不過後來留言算是有替我解答，至少最後有弄懂一些觀念，也參考了這個[偏半官方`C++`的API文檔](https://www.cplusplus.com/reference/istream/istream/operator-free/)。

左移運算符`>>`，內部分三種進行**函數重載**。
- single character
Extracts the next character and stores it
- character sequence
Extracts characters and stores as a c-string, stopping as soon as either a **whitespace character is encountered**. A null character is automatically appended to the written sequence.
- rvalue extraction
Allows extracting from rvalue istream objects, with the same effect as from lvalues: It effectively calls: `is>>val`.

最後的那個看不懂，我也還沒學到`C++`的`template`，之後再看，也覺得自己要多訓練自己看英文與官方的`API`文檔，這樣才可以把函式的各種功能發揮到最大。

<br>

## 09/01(三)
### 進度
- Notion基本操作
- 處理融合通識

### 心得
今天選課想換電磁甲班和控工丙班，結果還沒開始搶課都額滿了，之前我大二時也是這樣，可能都被大四以上的本系或外系學長搶光了吧。

之後開始研究如何使用Notion這套軟體，一樣是[Papaya電腦教室的影片](https://www.youtube.com/watch?v=Q_PfYlAtvHc)介紹最好，讓我快速入門。我還蠻喜歡的Notion的[linked database](https://www.notion.so/guides/using-linked-databases)功能，具備**資料庫的多類型顯示**。但考慮到通用性、備份的問題，這些廢文與日記我會繼續在HackMD書寫；而[行事曆](https://hsuchichen.notion.site/b8c03104a198426b8c7b86013903abdb?v=b589ba9959804e51a00defe2268fc050)與[偏向整體、概括方面的學習目標與進度](https://hsuchichen.notion.site/bb8e0811fba849d7a8d69494255afb40?v=8900529b6b6f41c19986b998172d7d8d)會採用Notion的資料庫去整理。

一開始我是用手機純文字記事本去整理，但這樣每次都要一個個打日期，效率偏低，現在我也很少手機了，幾乎整天都是在用電腦，是時候試看看其他工具了，畢竟**每一種資料都有他的特性，選擇最適合的資料結構進行儲存，才能方便後續進行存取**。

之後看了一下[GitHub Action、CI\CD的介紹](https://iter01.com/502911.html)，覺得還蠻有趣的，之後可以自己把流程跑一遍，測試看看。

今天也把之前剛放暑假研究的融合通識做完了，之前因為帳號申請流程錯誤，要重新註銷申請需要3個工作天，所以一直拖到才總算完成，也打了一些整理的過程與心得在成大串，同步於[gist](https://gist.github.com/HsuChiChen/bf81d3684b885ee466961f77fe72e434)。

---

分享一個CP值很高的融合通識 - 學術倫理講座。

### 規定
1. 細項
根據[通識課程選修要點](https://cge.ncku.edu.tw/p/404-1007-7830.php?Lang=zh-tw)融合通識課程**至少應修習1學分**，而當中內容包括[通識教育生活實踐](https://cge.ncku.edu.tw/var/file/7/1007/img/121659020.pdf)，就是透過自主學習**累積9點積分就可以換1學分**，需於[通識教育生活實踐積點認證系統](http://sys.cge.ncku.edu.tw/syscge/)申請。
<br>而在這個[通識教育生活實踐積點認證系統](http://sys.cge.ncku.edu.tw/syscge/)中除了[通識教育生活實踐](https://cge.ncku.edu.tw/var/file/7/1007/img/121659020.pdf)規定的4個選項中居然多了專案學習，而未於[通識教育生活實踐](https://cge.ncku.edu.tw/var/file/7/1007/img/121659020.pdf)中明文規定，校務人員回答是說系統和規定是死的，有些東西還是多打電話詢問比較沒問題。
<br>在這專案學習中的學術倫理講座與環安衛教育訓練檢測。校務人員建議我暑假可以先聽，之後再開學後再申請。

2. 總結
層級就是[通識課程選修要點](https://cge.ncku.edu.tw/p/404-1007-7830.php?Lang=zh-tw) -> [通識教育生活實踐](https://cge.ncku.edu.tw/var/file/7/1007/img/121659020.pdf)([通識教育生活實踐積點認證系統](http://sys.cge.ncku.edu.tw/syscge/)線上申請) -> 專案學習 ->  學術倫理講座與環安衛教育訓練檢測

### 課程
1. 學術倫理講座<br>
照著[學術誠信線上課程](https://oai.web2.ncku.edu.tw/p/412-1072-2086.php?Lang=zh-tw)流程，積分申請**只會承認中文或英文的課程，不能同時聽**。我是選擇Epigeum與CITI Program聽，直接作答，答案google都有，反正一直作，作到答題率高於規定就能取得證書，並與[學術倫理教育時數登錄平台](http://ordb.ncku.edu.tw/ethics/index.php?auth)申請積分，之後開學後等通識[教育生活實踐積點認證系統](http://sys.cge.ncku.edu.tw/syscge/)開放申請積分，再上傳證明即可。

2. 環安衛教育訓練檢測<br>
一樣照個系統上的規定走，如規定上寫4個教育訓練課程，但是作答的地方 - [成大育才網](https://ge.ncku.edu.tw/)上好像少了生安與生保教育訓練，不過還是可以用英文版的"Biosafety Training Course at NCKU"代替，這部分一直作題到100分為止，一樣等開學後再申請。

### 學分
學術倫理講座Epigeum與CITI Program共12小時的時數，而3小時換1點，因此獲得4點。<br>
環安衛教育訓練檢測共4堂課程，1課程換1點，因此獲得4點。<br>
所以沒意外的話，總共獲得4+4=8點，因此還需自行補1點，集滿9點才能換1學分。

### 結論
如果我沒理解錯誤是這樣，還是多打電話、多去詢問煩他們、多加確認會比較好，不然研究了好久，結果打電話，它們回應是**系統和規定是死的，現在早就改了**，我之前在抵免大一體育也是被搞過一次，真的會被氣死。

<br>

## 09/02(四)
### 進度
- C++專案二的完成90%
- 一些大型專案使用工具的認識

### 心得
感覺今天也沒做什麼事，原本想把專案二弄完，但想到還是要調好生理時鐘，看到身邊很多**熬夜結果肝功能異常**的案例，感覺很恐怖，我也一年多沒健康檢查了，也不知道現在自己的身體狀況。


今天專案二除了實作教的內容外，自己也加上一些判斷輸入錯誤的機制，不過在處理動態分配方面，他是反覆的用`delete`和`new`，等之後我在熟悉`linked list`後，可以回過來做更好的記憶體分配，不過目前還不行，光是一些`class`的架構就要多去熟悉了。

晚上跑了之前在場外看到的[巴哈自動化](https://github.com/JacobLinCool/Bahamut-Automation)，初步認識`YAML`格式、`CI/CD`與[DevOps](https://www.bilibili.com/video/BV1zf4y127vu)的技術名詞，這些感覺是很好用的開發工具，以後可以再去學習。

<br>

## 09/03(五)
### 進度
- 專案二完成
- 進入泛型編程-模板
- 吃東港亞士都海產

### 心得
今天媽媽和阿姨南下回潮州，待幾天之後要載阿公、阿嬤回台北回診。因為要提前慶祝哥哥生日(不過感覺主要是想大家聚一聚吧)，一開始是計畫去吃萬巒豬腳的合菜，但我哥和我上禮拜才剛吃過，所以跟媽媽講一下，最後沒想到改成吃[東港亞士都](https://goo.gl/maps/syAuqiRoZbXTWKov8)，這家店都是過年時在吃，沒想到會吃這麼好料的，我們這桌8人吃了3000的菜，海鮮吃的還蠻過癮的，另外還有2個我比較不熟的姨婆去，大家都聊的蠻開心的，不時也會開個玩笑話。

晚上大阿姨、媽媽、哥哥跑來我房間，因為只有我這房間有裝冷氣，大阿姨在幫媽媽按摩。

聊到了繪圖，阿姨講到以前是在台商公司，被調到廣東東莞廠當業務，要催工人用AutoCAD進行3D繪圖，用CNC刻出電子連接器，講到有一次很肝，半夜飛去韓國仁川機場就為了在指定期間內，給客戶電子連接器的樣本。

還講到以前小阿姨、阿嬤他們都有去他們工廠看，而我小時候記得大阿姨打來，媽媽好像跟我說國際電話很貴，要我珍惜通話時間，我就問大阿姨在哪裡?大阿姨說大陸，我問大陸是什麼?大阿姨就說大陸是很大很大的陸地，然後我就聽的很懵了，這就是我記憶以來對大阿姨的第一印象，等到大阿姨回到台灣後常常陪我玩，我們才變得比較熟。

也聊到了我有"中年危機"-我的GPA太爛，可能我用"中年危機"這個形容有點好笑，大阿姨有點笑出來，但老實說這件事，從我轉學進來的第一學期第一次成績單就沒停過，當然我知道只有我最清楚自己的問題，講出來單純想分享我的煩惱而已，也沒辦法解決，只能由三年級最後50%比重的GPA去彌補了。

想想我也好久沒跟媽媽說話了，自從上大學後離開新莊，大一暑假當兵，而現在大二暑假待在潮州的家，也沒回新莊。還記得以前國中時作業很多，我都寫不完也熬夜到很晚，媽媽都會一直念我；而上了高二，那時的物理、化學成績慘不忍睹，及格邊緣，媽媽也會念我，但我好像都聽不進去，還是依然故我。

現在媽媽還是會念我，但在這裡的時間也才三天而已，我知道父母很開始放手了，給了我很大的空間，我也要更加自律，不能辜負他們的期待，另一方面也是對自己未來的期許。

但轉學進來的我心態則是徹底崩潰，這一年來我沒有朋友，自己一個人去圖書館讀書、自己一個人在宿舍(室友都是活動仔，常常不在宿舍)、自己一個人吃每一頓晚餐，爸媽雖然放手了，給了我很大的自由，**但我交不朋友，像個長不大的小孩需要父母關心** - 這段上學期間，媽媽和阿姨有時候假日會陪我出去吃頓飯，對我還說在一起的時光都是我最大的精神支柱，我也很珍惜跟他們在一起的時光，因為我內心永遠知道 - 今天這頓晚飯吃完之後，明天的我還是要自己一個人吃飯。

---

專案二從8/31開始，中途停了一些時間，今天要熬個夜，總算是完成了。進入第三階段，介紹到泛型編程(在強型別程式設計語言中編寫代碼時使用一些以後才指定的類型)，介紹到模板，就是把副程式返回值和形參的資料型態轉換成變數，提高覆用性。
```cpp
template<typename T> //or <class T>
函數聲明或定義
```
調用方式分2種
```cpp
//1、自動類型推導
mySwap(a, b);

//2、顯示指定類型
mySwap<int>(a, b);
```

<br>

## 09/04(六)
### 進度
- 函數模板發生重載
- 類模板繼承、分文件編寫

### 心得
大阿姨和媽媽今天早上去東港，晚上帶回很多海鮮到阿嬤家加菜，吃很多好料的，晚上聚在一起小聊一下，明天大阿姨和媽媽就要載阿公、阿嬤北上去例行性健康檢查了，想到6/28爸爸載我搬宿舍，在潮州生活2個多月了，這段時間哥哥和我每天晚上都會去阿嬤家吃，也將要劃下句點，代表著暑假快要結束了。

---

今天原本希望能飆完函數模板，還是沒完成，不過明天終於可以進入最後的`STL`了。今天學到的有**類模板的使用** - 包括繼承、類模板中成員函數類外實現、分文件編寫(`*.hpp`)，也帶到一個重要的觀念。
> 類模板中的成員函數並不是一開始就創建的，在調用時才去創建

<br>

## 09/05(日)
### 進度
- 函數模板總結
- `STL`認識

### 心得
今天類模板案例總結了很多知識點，也當作是複習。
|函數|功能|
|:-:|:-:|
|有參構造函數|`new`數據到`heap`區|
|析構函數|把在`heap`區的數據`delete`掉|
|拷貝構造函數|用深拷貝解決淺拷貝|
|operator=函數重載|自定義數據類型運算，用深拷貝解決淺拷貝|
|operator[]函數重載|自定義數據類型運算，通過下標方式訪問數組中的元素|

也進入`STL`標準模板庫，使用方式:
1. 創建vector容器對象
```cpp
vector<int> v;
```
2. 向容器中放數據
```cpp
v.push_back(10);
```
3. 疊代器(用來遍歷容器中的元素，每一個容器都有自己的疊代器)
```cpp
for(vector<int>::iterator it = v.begin(); it != v.end(); it++) {
    cout << *it << endl;
}
```
也可使用`STL`提供標準遍歷算法  需頭文件`<algorithm>`
```cpp
for_each(v.begin(), v.end(), function);
```

<br>

## 09/06(一)
### 進度
- `string`函式庫

### 心得
感覺作息開始變糟了，下午睡了太久，晚上又睡不著了。今天晚上做了一堆家事 : 搬水、買東西、洗碗、收集垃圾...值得一提的是去全聯時買東西時竟然暈船，也打了篇[暈船的過程](https://hackmd.io/@HsuChiChen/love-cashier)，可能是因為上了大學後，我太久沒跟好看的女生講話QQ。

---

接下的課程感覺簡單多了，都是`STL`現成容器的調用，感覺這部分明天可以加速去看了，不過也開始發現 - 要了解這些函數的接口也需要前面的概念，像是
```cpp
string (const string& str);
```
就是**有參構造函數**的調用，創建一個`class`中`object`，並透過有參構造函數對這個`object`進行初始化。

```cpp
size_t find (const string& str, size_t pos = 0) const noexcept;
```
屬於`string`這個`class`的**成員函數**，其中`pos = 0`用到**默認參數**的概念，我也了解到調用時，有寫該參數與不寫的差異。
```cpp
string& operator= (const string& str);
```
本質上這也是成員函數，用到的是**函數重載**的觀念，使得自定義的數據類型`string`可以透過重載`=`這個運算符進行自定義運算。

---

`string`是一個別人寫好的類，類內部封裝了`char*`，管理這個字符串，是一個`char*`型的容器，使得使用者不須要了解內部的運算原理，方便去調用。

當然以我一個CS的初學者來說，了解`STL`後，還是**手刻容器**會比較好，因此我也額外看了一下[KMP演算法](https://www.youtube.com/watch?v=dgPabAsTFa8)的概念，這算法神奇的，可以大幅減少字符串查找時的複雜度，之後可以多學學。

<br>

## 09/07(二)
### 進度
- `vector`函式庫
- `deque`函式庫
- 第一次在家煮飯

### 心得
下午用巴哈分身在場外發了篇創作文-[【勸世】索米beta拜託你去找工作好嗎？不要再滑場外了](https://archive.is/D2DQj)，反應不錯，連我自己都覺得有點好笑了。簡單介紹一下場外這位巴友，他真的很誇張，整天都在逛場外，幾乎每篇文都會有他的留言，怎麼會有人把人生花在這個破論壇呢?xDD

晚餐是哥哥和我第一次在家下廚，因為每次買外面的東西又貴又吃不飽，所以我就去全聯買了料理油、牛肉片、無骨吳郭魚、青菜等，而我哥負責下廚。由於我們經驗不熟，所以還是有一些不足的地方-太油、米泡的時間需要久一點，不過這些都不成問題，之後熟能生巧即可。對我們來說也算是**一個很好的開始**，在家自己買東西煮，省了不少錢，也可以磨練一下獨立生活、煮飯的技能。

---

如前幾天所述，`STL`都是調用別人寫好的容器，所以技術含量偏低，因此我注意的點是各個容器之間的特性、比較與內部實現的原理。

- vector與數組不同之處在於vector可以**動態擴展**，而動態擴展並不是在原空間之後續接新空間，而是**找更大的內存空間**，然後將**原數據拷貝新空間**，**釋放原空間**。由於vector維護的是一個連續線性空間，所以vector支持隨機存取 。
- deque由**一段一段的定量連續空間**構成。一旦有必要在deque的前端或尾端增加新空間，便配置一段定量連續空間，串接在整個deque的頭端或尾端，因此對頭部的插入刪除速度會比`vector`快。deque的最大任務，便是在這些分段的定量連續空間上，維護其整體連續的假象，並提供隨機存取的接口。**避開了"重新配置、複製、釋放"的輪回，代價則是複雜的疊代器架構**。<br><br>deque採用一塊所謂的map（注意，不是STL的map容器）作為主控。這裡所謂map是一小塊連續空間，其中每個元素（此處稱為一個節點，node）都是指針，指向另一段（較大的）連續線性空間，稱為緩沖區。

![](https://i.imgur.com/AoO0K8m.png)

<br>

## 09/08(三)
### 進度
- 哥哥慶生去高雄吃田季發爺
- Notion的formula功能

### 心得
今天是哥哥生日，下午我哥就騎車載我去高雄吃[田季發爺](https://goo.gl/maps/aMtQjRtfjVoyN4tPA)`599`元燒肉吃到飽，一開始騎錯騎往反方向，中途還迷路，有點好笑，最後才看手機導航騎到目的地，燒肉吃的蠻過癮了，搭配生菜、無糖煎茶解油膩。
![](https://i.imgur.com/IDvoZrY.jpg)
之後騎到[四維行政中心](https://goo.gl/maps/1eWWGg7snCDMFWSx9)，哥哥再過30天就要考稅務高考了，之後如果幸運考上第一志願的話，就會在這裡上班，我看大樓很氣派，周遭林蔭大道，工作環境也不錯。之後換我騎回家，我其實也不太熟悉路況，所以都慢慢地騎，另一方面也是因為平面道路紅綠燈很多，所以騎了50分鐘才到家。

到家後，去理個髮、洗碗後，就覺得好累，想說好久沒看動畫了，就看了3集[Lovelive的新番](https://ani.gamer.com.tw/animeVideo.php?sn=23585)，意外還蠻好看的，也聽到自己喜歡的歌，找回了當初看初代Lovelive的些微感動。

---

最後研究Notion，遇到的問題有
### question_1
輸入時無法提示之前輸入過而存在資料庫的字
### Workaround_1
把property type從`text`改成`select`，也就是說所有不一樣的資料都會變成一個個hashtag，此時又冒出一個問題就是他一定要有一個`text`資料型態的標題，解決方法是直接把標題空著
### question_2
[沒有filter去篩選當月月份](https://www.reddit.com/r/Notion/comments/pkgnzo/does_notion_have_a_filter_for_the_current_month/)
### Workaround_2
我在reddit上問，馬上就有大佬回，**不得不說`reddit`, `Quora`, 知乎這些論壇，比起台灣論壇很多沒營養的回答，整天戰校嘴砲好多了**，很多時候我逛這些匿名論壇是因為希望**在該方面的佼佼者能帶給我不一樣面對問題的思考方向**。

解決方法是用Notion另一個除了`linked database`之外我很喜歡的`formula`
1. 新增一個`formula`的column，鍵入`formatDate(prop("Date"), "M") == formatDate(now(), "M")`，參照[Notion Formulas](https://www.notion.so/1a963e4f5ed1439f8e1da8875cda9e43?v=f43442e47fbe4842b9abdb88039db3bc)中`now()`函式是抓現在時間，並去調一下要抓取的參數，如下圖。
![](https://i.imgur.com/t6vFFkQ.png)
2. 新增一個`filter`去篩選即可。

之後可以也可以玩玩Notion的`formula`，尤其是**抓時間的函式now()**，是一般文件沒有的。現在的我寫日記用`markdown`，存資料庫用`notion`，開始遠離`office`家族`docx`, `pptx`, `xlsx`這些老舊而過氣的格式了。


<br>

## 09/09(四)
### 進度
- 建立Notion的database "Reading list"
- 巴哈個人小屋翻新

### 心得
今天主要是滿足自己的整理慾，也沒做什麼正經事。一開始我在excel裡面整理了一下之前看過的動漫列表，加了標籤、評分、日期等，進行分類，之後再上傳`*csv`(Comma-separated values)檔案格式到Notion，但不知道是不是Notion的問題，在轉換時，後面一些資料`*csv`看時明明好好的，但Notion就是讀不到，這部分真的無解。
在這個**Reading list的database**中，共分9個欄位與4個views:
|欄位|功能|
|:-:|:-:|
|Date|觀看日期(寫大略參考)|
|Name|作品名稱|
|Score/5|個人主觀評分，從1星到5星|
|Tags|作品要素與類型|
|Status|觀看狀態，例如:`Aborted`代表棄番、`Seems cool`代表在觀望|
|Year|作品推出年份|
|Month|作品推出月份|
|Episode|看到的集數，因此如果狀態是`finish`代表這部劇的所有級數|
|Type|分動畫(絕大多數)、美劇、韓劇等|

|view|功能|URL|
|:-:|:-:|:-:|
|watching|顯示正在看以及將要看的作品|[點我觀看](https://hsuchichen.notion.site/a8e1d49283174652b517a4ed741d11e3?v=d3151ed76c8e4c6ead477e0cb094be13)|
|status|以狀態看板的方式顯示看的狀況|[點我觀看](https://hsuchichen.notion.site/a8e1d49283174652b517a4ed741d11e3?v=3f873692d3ee4f8d90b5b3cb3dec11d1)|
|all|依照觀看日期近到遠排序所有作品|[點我觀看](https://hsuchichen.notion.site/a8e1d49283174652b517a4ed741d11e3?v=f05c54174d364bc89b917f44950040e1)|
|5-star|依照評分欄位篩選我評分最高(5-star)的作品|[點我觀看](https://hsuchichen.notion.site/a8e1d49283174652b517a4ed741d11e3?v=c9870c57894543ac9a729b0a0d5f77e2)|

小屋的一些圖示也翻新了一遍，以**簡單明瞭的圖示**為大原則，我今天整理的好開心，不過感覺這樣有點病態就是了。

<br>

## 09/10(五)
### 進度
- 整理出兩篇文章

### 心得
今天做很多雜事，也整理了一些電腦的本地文件。我朋友傳給我HackMD的消息，由於下周付費版的加入，免費版將新增以下限制:
- 範本數量3篇
- 邀請者數量3人
- 版本紀錄10次
- GitHub推送次數每月20次

今天也整理了兩篇筆記 : [Markdown換行規則比較](https://hackmd.io/@HsuChiChen/markdown-new-line)與[GCC指令參數](https://hackmd.io/@HsuChiChen/gcc-command)，而明天我還是趕快把這些廢文打一打，在這周還沒被影響之前，把筆記push到GitHub上備份好了。


<br>

## 09/11(六)
### 進度
- 打完1篇文章

### 心得
今天下午碰了galgame，發現千戀萬花居然打不開，說我缺少`*.dll`文件，似乎是跟驅動有關，所以我就了斷把遊戲刪了，原本還想破茉子線的劇情的說QQ。晚上打了一篇廢文，明天再打一篇就收工。

<br>

## 09/12(日)
### 進度
- excel軟體使用

### 心得
之前有二下時平常配飯都看[PAPAYA電腦教室word的教學](https://www.youtube.com/watch?v=hw61ZRDBWe0&list=PL7enJ2-v6SPlgDsNHXJ1K2RpkZY2b_pm7)，學到的有
- 多層次清單/樣式，優先級為**直接格式>字元樣式>段落樣式**，並打開檢視->功能窗格可觀看設定好的標題層級
- 下拉式清單、核取方塊在開發人員->控制項可找到
- 頁首、頁尾、頁碼設定、分節符號
- 字體樣式套用，維持中英字體的一致姓
- 按快捷鍵`Alt`與`+`可輸入方程式，支援部分`latex`語法
- 用[grammarly](https://app.grammarly.com/)插件來檢查英文語法

雖然我還是喜歡用Markdown，它可以讓我更專注於書寫，不過學校還是常常規定要交`docx`,`pptx`，而今天我看了[PowerPoint 基礎教學](https://www.youtube.com/watch?v=XzaYDv48-eE&list=PL7enJ2-v6SPmqEd_I9zQmCd4b6VSJhYqy)，也沒看很多，因為對我來說**白底黑字還是最清楚明瞭**，但還是複習了投影片母片的觀念。

接下來是著重excel教學，我覺得excel定位在於**spreadsheet的處理與日常資料處理**，就算是進階一點的`VBA`感覺用途侷限，不值得學習。要深入，去學`python`、`matlab`、統計系在用的`SAS`、`SPSS`等工具會比較有意義，所以我excel只學基本日常小數據處理，學到的知識點已移至[excel軟體操作](https://hackmd.io/@HsuChiChen/excel)筆記。

還沒看完，明天繼續看。睡前研究Discord，它支援部分`Markdown`語法以及一些好用的指令，Discord bot也很酷，看到reddit上有人分享拿Discord bot做一些小遊戲和群組管理的工具。

<br>

## 09/13(一)
### 進度
- excel軟體使用第2天

### 心得
延續昨天的excel教學，相關筆記已移至[excel軟體操作](https://hackmd.io/@HsuChiChen/excel)筆記。

<br>

## 09/14(二)
### 進度
- excel軟體使用第3天

### 心得
繼續學習excel軟體使用。由於筆記篇幅過多，所以我另外打一篇[excel軟體操作](https://hackmd.io/@HsuChiChen/excel)的筆記，越來越覺得excel分析資料的強大性，不過這部分還是不能太仰賴，學到主要有:
- 自訂數值格式語法
- 字串、日期處理函式
- 動態陣列(一行公式回傳多筆資料，具有spilling的特性)
- XLOOKUP等一大堆function的使用
- 甘特圖(Gantt Chart)、帕列托圖(80/20法則)、李克特量表(Likert scale)
- Forms表單->power query資料整理->power pivot建立資料模型->樞紐分析表

<br>

## 09/15(三)
### 進度
- excel軟體使用第4天

### 心得
今天是excel軟體使用第4天也是最後一天，了解`OFFSET`(選擇相對位置)、`LAMBDA`(建立標籤後，類似subfunction功能)，終於算是一個完結了。之後打我其他的筆記。

今天其實已經開學了，不過我禮拜三沒課，詳見[大學課程規劃](https://hackmd.io/@HsuChiChen/university-course)，開學後只會變得更忙而已，而我還有幾項沒有完成:
- 整理並打好個人筆記
- C++的STL與最後總複習
- git的進階使用(rebase, stash), python爬蟲(學到一半)

而還有幾項是開學後需要補齊與加深的基本知識，能補多少算多少，真的沒辦法，那也只能期中退選了。
- 工程數學二(二下退選，完全沒有概念)
- 訊號與系統(沒上過課，完全沒有概念)
- 機率(多變數不熟)
- 電子學一二(cascode不熟)

<br>

## 2021下暑假總結
### 進度
- 與哥哥、阿公嬷等家人之間的互動
- linux基本操作
- git版本控制與Github page使用
- 物件導向
- C/C++記憶體分區
- 生醫工程模組化課程
- excel軟體與Notion使用

### 心得
**從6/28到9/25這將近3個月的時間說長不長說短不短，但對我來說是個全新的生活體驗。**

原訂今年我要延續大一暑假當兵去完成剩下兩個月的兵役，但是由於新冠肺炎而暫緩徵兵，而我也有了這個完整的暑假好好反思一下我未來的人生方向。

今年暑假我第一次沒回新莊老家，而是和哥哥待在潮州，不同於大台北的繁忙，南部的生活很輕活，時間彷彿靜止了，反而給了我一個私人的空間去想像。
![](https://i.imgur.com/mzFJ93o.jpg)


如[2020年台綜大A10轉學考心得與一年後的回顧](https://hackmd.io/@HsuChiChen/transfer-log)一文在經過高三與大一的煎熬，終於在大二取得四大的基本學歷門檻，但這一年來，我在學業方面真的是一頭亂，或許是因為沒有幾個朋友，心態崩潰，不好好讀書把本業顧好，開始去學一些有的沒的，如[Adobe學習日記](https://hackmd.io/@HsuChiChen/adobe-log)，但我也不想歸咎於學其他事情上面，而是自己的時間管理要做好，什麼時間就是應該要做什麼事。

二下的我藉著之前認識的夯哥為媒介去擴散社交圈，去認識新的轉學朋友，學習那些神人如何讀書、請教課業上的問題，互相交流.....這些東西比起自己一個人讀書閉門造車有效率多了，我也不會像一隻井底之蛙，總是只知道片面的知識。

5月份由於新冠肺炎在本土疫情爆發，超花時間的超大課程後半layout課程都停掉，因此給了我很多時間去讀電子學與學程式。

那時花了一個大半夜的時間看教學做Unity簡單小遊戲、結合heroku架line bot、寫JS腳本改變網頁格式...這些在一般人看起來再正常不過的事情，但對我一個程式麻瓜來說是個很新奇的事情，沒想到寫個幾行程式竟然可以玩很多事情，因此在考完電子學等科目後的暑假，開始我重學程式的計畫。

暑假一開始學git版本控制，回到上一個存檔點與branch之間切換對我來說是個很新奇而好用的工具。看[微中子的程式教學](https://www.youtube.com/channel/UCe_3sYrCsZyo9WAGd0s6vRQ/videos)與[CodeSheep程序羊](https://www.youtube.com/channel/UC9PZ_j30JhfgjOrJZAtYzRw/videos)等教學開始概略性了解程式是能做到什麼事、有分甚麼領域。接下來架Github page把自己所有的實質上東西展示出來，以及開始在HackMD日更筆記，紀錄自己學習的筆記。

學校課程方面，上模組化課程生醫微製程原理與實作，學到不少科普知識，像是機械領域的CNC，簡單來說就是透過"電腦自動控制機械"去加工產品，藉由一些工業導向的3D建模CAD去建構畫圖，再來用CAM去調整相關參數、切片方法與使用材質，最後再藉由第一種加法工藝FDM、SLA、SLS等不同種類的3D列印機或是第二種減法工藝車床或銑床的切削加工去實現。

而期末報告雖然熬夜一天不睡覺爆肝，結果還是被醫藥三類科系的報告電，但我學到了PCR、螢光定量、CT值計算，這方面也符合最近的實事新冠肺炎篩檢。

**接下來到開學都是觀看B站上的C++教學**與google到的教學，學到有 :
- 指標
- 物件導向
- C/C++記憶體分區
- 淺拷貝與深拷貝區別
- 運算符重載
- C-style string的處理
- 泛型編程-模板

美中不足的是學到STL的一半就開學了，接下來的課程只能等大三寒假補了。

---

暑假期間與哥哥住在潮州新家，跟哥哥、阿嬤有了一些難得的相處。像是每天晚上去阿嬤家吃飯，跟阿嬤閒話家常，隔幾天去林後四林或是綠色隧道跑步運動、哥哥生日那天去高雄吃田季發爺慶生、爸媽阿姨南下來家庭聚餐...平常甚至是在升大學外宿以前，就很少跟哥哥和阿公嬤能相處那麼長的時間、講話互動，這是我從未體驗過的。

與哥哥去運動跑步時，聊了他未來的工作選擇、晚上在家裡像小時候一樣跟哥哥一起下跳棋，**真的好久好久沒有跟哥哥講這麼多話了**，國中以後我們之間就幾乎0互動，我也一直很不了解哥哥，想知道哥哥在想什麼。有時候還是會懷念小時候和哥哥、爸媽一起相處的時間、無憂無慮沒有現實壓力的生活，雖然那都是過去的往事了，但自己還是會時不時想起。

時間不等人，三個月的時光轉眼間結束，未來阿嬤也會年老、哥哥也有自己的人生規劃，未來也很難能像這個暑假有一起相處的時間，我很珍惜、享受這段暑假時間，因為這些零碎的日常、一切的種種終將成為回憶，無法重建。